Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Andersson007 authored Jan 12, 2024
0 parents commit 957a5c5
Show file tree
Hide file tree
Showing 23 changed files with 1,453 additions and 0 deletions.
292 changes: 292 additions & 0 deletions .github/workflows/ansible-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,292 @@
# README FIRST
# 1. Subscribe to https://github.com/ansible-collections/news-for-maintainers
# (click the Watch button on the homepage > Custom > Issues)
# and keep this matrix up to date in accordance to related announcements.
# Timely add new ansible-core versions and consider dropping support
# and testing against its EOL versions.
# 2. If your collection repository is under the ansible-collections org,
# please keep in mind that the number of GHA jobs is limited
# and shared across all the collections in the org.
# So, focusing on good test coverage of your collection,
# please avoid testing against unnecessary entities such as
# ansible-core EOL versions your collection does not support
# or ansible-core versions that are not EOL yet but not supported by the collection.
# 3. If you don't have unit or integration tests, remove corresponding sections.
# 4. If your collection depends on other collections ensure they are installed,
# add them to the "test-deps" input.
# 5. For the comprehensive list of the inputs supported by the
# ansible-community/ansible-test-gh-action GitHub Action, see
# https://github.com/marketplace/actions/ansible-test.
# 6. If you want to prevent merging PRs that do not pass all tests,
# make sure to add the "check" job to your repository branch
# protection once this workflow is added.
# It is also possible to tweak which jobs are allowed to fail. See
# https://github.com/marketplace/actions/alls-green#gotchas for more detail.
# 7. If you need help please ask in #community:ansible.com on Matrix
# or in bridged #ansible-community on the Libera.Chat IRC channel.
# See https://docs.ansible.com/ansible/devel/community/communication.html
# for details.
# 8. If your collection is [going to get] included in the Ansible package,
# it has to adhere to Python compatibility and CI testing requirements described in
# https://docs.ansible.com/ansible/latest/community/collection_contributors/collection_requirements.html.

name: CI
on:
# Run CI against all pushes (direct commits, also merged PRs), Pull Requests
push:
branches:
- main
- stable-*
pull_request:
# Run CI once per day (at 06:00 UTC)
# This ensures that even if there haven't been commits that we are still
# testing against latest version of ansible-test for each ansible-core
# version
schedule:
- cron: '0 6 * * *'

concurrency:
group: >-
${{ github.workflow }}-${{
github.event.pull_request.number || github.sha
}}
cancel-in-progress: true

jobs:

###
# Sanity tests (REQUIRED)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_sanity.html

sanity:
name: Sanity (Ⓐ${{ matrix.ansible }})
strategy:
matrix:
ansible:
# It's important that Sanity is tested against all stable-X.Y branches
# Testing against `devel` may fail as new tests are added.
# An alternative to `devel` is the `milestone` branch with
# gets synchronized with `devel` every few weeks and therefore
# tends to be a more stable target. Be aware that it is not updated
# around creation of a new stable branch, this might cause a problem
# that two different versions of ansible-test use the same sanity test
# ignore.txt file.
# Add new versions announced in
# https://github.com/ansible-collections/news-for-maintainers in a timely manner,
# consider dropping testing against EOL versions and versions you don't support.
- stable-2.14
- stable-2.15
- stable-2.16
- devel
# - milestone
# Ansible-test on various stable branches does not yet work well with cgroups v2.
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
# image for these stable branches. The list of branches where this is necessary will
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
# for the latest list.
runs-on: >-
${{ contains(fromJson(
'["stable-2.9", "stable-2.10", "stable-2.11"]'
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
steps:
# Run sanity tests inside a Docker container.
# The docker container has all the pinned dependencies that are
# required and all Python versions Ansible supports.
- name: Perform sanity testing
# See the documentation for the following GitHub action on
# https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: ${{ matrix.ansible }}
testing-type: sanity
# OPTIONAL If your sanity tests require code
# from other collections, install them like this
# test-deps: >-
# ansible.netcommon
# ansible.utils
# OPTIONAL If set to true, will test only against changed files,
# which should improve CI performance. See limitations on
# https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
pull-request-change-detection: false

###
# Unit tests (OPTIONAL)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_units.html

units:
# Ansible-test on various stable branches does not yet work well with cgroups v2.
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
# image for these stable branches. The list of branches where this is necessary will
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
# for the latest list.
runs-on: >-
${{ contains(fromJson(
'["stable-2.9", "stable-2.10", "stable-2.11"]'
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
name: Units (Ⓐ${{ matrix.ansible }})
strategy:
# As soon as the first unit test fails, cancel the others to free up the CI queue
fail-fast: true
matrix:
ansible:
# Add new versions announced in
# https://github.com/ansible-collections/news-for-maintainers in a timely manner,
# consider dropping testing against EOL versions and versions you don't support.
- stable-2.14
- stable-2.15
- stable-2.16
- devel
# - milestone

steps:
- name: >-
Perform unit testing against
Ansible version ${{ matrix.ansible }}
# See the documentation for the following GitHub action on
# https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: ${{ matrix.ansible }}
testing-type: units
# OPTIONAL If your unit tests require code
# from other collections, install them like this
test-deps: >-
ansible.netcommon
ansible.utils
# OPTIONAL If set to true, will test only against changed files,
# which should improve CI performance. See limitations on
# https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
pull-request-change-detection: false
###
# Integration tests (RECOMMENDED)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_integration.html


# If the application you are testing is available as a docker container and you want to test
# multiple versions see the following for an example:
# https://github.com/ansible-collections/community.zabbix/tree/master/.github/workflows

integration:
# Ansible-test on various stable branches does not yet work well with cgroups v2.
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
# image for these stable branches. The list of branches where this is necessary will
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
# for the latest list.
runs-on: >-
${{ contains(fromJson(
'["stable-2.9", "stable-2.10", "stable-2.11"]'
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
name: I (Ⓐ${{ matrix.ansible }}+py${{ matrix.python }})
strategy:
fail-fast: false
matrix:
ansible:
- devel
# - milestone
python:
- '3.7'
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
include:
# Add new versions announced in
# https://github.com/ansible-collections/news-for-maintainers in a timely manner,
# consider dropping testing against EOL versions and versions you don't support.
# ansible-core 2.14
- ansible: stable-2.14
python: '2.7'
- ansible: stable-2.14
python: '3.5'
- ansible: stable-2.14
python: '3.6'
- ansible: stable-2.14
python: '3.7'
- ansible: stable-2.14
python: '3.8'
- ansible: stable-2.14
python: '3.9'
- ansible: stable-2.14
python: '3.10'
- ansible: stable-2.14
python: '3.11'
# ansible-core 2.15
- ansible: stable-2.15
python: '2.7'
- ansible: stable-2.15
python: '3.5'
- ansible: stable-2.15
python: '3.6'
- ansible: stable-2.15
python: '3.7'
- ansible: stable-2.15
python: '3.8'
- ansible: stable-2.15
python: '3.9'
- ansible: stable-2.15
python: '3.10'
- ansible: stable-2.15
python: '3.11'
# ansible-core 2.16
- ansible: stable-2.16
python: '2.7'
- ansible: stable-2.16
python: '3.6'
- ansible: stable-2.16
python: '3.7'
- ansible: stable-2.16
python: '3.8'
- ansible: stable-2.16
python: '3.9'
- ansible: stable-2.16
python: '3.10'
- ansible: stable-2.16
python: '3.11'
- ansible: stable-2.16
python: '3.12'

steps:
- name: >-
Perform integration testing against
Ansible version ${{ matrix.ansible }}
under Python ${{ matrix.python }}
# See the documentation for the following GitHub action on
# https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: ${{ matrix.ansible }}
# OPTIONAL command to run before invoking `ansible-test integration`
# pre-test-cmd:
target-python-version: ${{ matrix.python }}
testing-type: integration
# OPTIONAL If your integration tests require code
# from other collections, install them like this
test-deps: ansible.netcommon
# OPTIONAL If set to true, will test only against changed files,
# which should improve CI performance. See limitations on
# https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
pull-request-change-detection: false
check: # This job does nothing and is only used for the branch protection
# or multi-stage CI jobs, like making sure that all tests pass before
# a publishing job is started.
if: always()

needs:
- sanity
- units
- integration

runs-on: ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
34 changes: 34 additions & 0 deletions .github/workflows/extra-docs-linting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Lint extra docsite docs and links
on:
# Run CI against all pushes (direct commits, also merged PRs), Pull Requests
push:
branches:
- main
- stable-*
pull_request:
# Run CI once per day (at 06:00 UTC)
# This ensures that even if there haven't been commits that we are still testing against latest version of ansible-test for each ansible-base version
schedule:
- cron: '0 6 * * *'

jobs:
docsite:
name: Lint extra docsite docs and links
permissions:
contents: read
runs-on: ubuntu-latest
steps:

- name: Check out code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.10'

- name: Install antsibull-docs
run: pip install antsibull-docs --disable-pip-version-check

- name: Run collection docs linter
run: antsibull-docs lint-collection-docs . --plugin-docs --skip-rstcheck
Loading

0 comments on commit 957a5c5

Please sign in to comment.