CI #1375
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
# SPDX-FileCopyrightText: 2020, Felix Fontein | |
name: CI | |
'on': | |
# Run CI against all pushes (direct commits, also merged PRs) to main, and all Pull Requests | |
push: | |
branches: | |
- main | |
pull_request: | |
# Run CI once per day (at 06:00 UTC) | |
schedule: | |
- cron: '0 6 * * *' | |
jobs: | |
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. | |
- stable-2.11 | |
- stable-2.12 | |
- stable-2.13 | |
- stable-2.14 | |
- stable-2.15 | |
- stable-2.16 | |
- devel | |
# 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.11"]' | |
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }} | |
steps: | |
- name: Perform sanity testing | |
uses: felixfontein/ansible-test-gh-action@main | |
with: | |
ansible-core-version: ${{ matrix.ansible }} | |
testing-type: sanity | |
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.11"]' | |
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }} | |
name: I (Ⓐ${{ matrix.ansible }}+py${{ matrix.python }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
ansible: | |
- devel | |
python: | |
- 2.7 | |
- 3.6 | |
- 3.7 | |
- 3.8 | |
- 3.9 | |
- '3.10' | |
- '3.11' | |
include: | |
# 2.11 | |
- ansible: stable-2.11 | |
python: 2.6 | |
- ansible: stable-2.11 | |
python: 2.7 | |
- ansible: stable-2.11 | |
python: 3.5 | |
- ansible: stable-2.11 | |
python: 3.6 | |
# 2.12 | |
- ansible: stable-2.12 | |
python: 3.7 | |
# 2.13 | |
- ansible: stable-2.13 | |
python: '3.10' | |
# 2.14 | |
- ansible: stable-2.14 | |
python: '3.9' | |
# 2.15 | |
- ansible: stable-2.15 | |
python: 2.7 | |
- ansible: stable-2.15 | |
python: '3.5' | |
# 2.16 | |
- ansible: stable-2.16 | |
python: '3.6' | |
steps: | |
- name: >- | |
Perform integration testing against | |
Ansible version ${{ matrix.ansible }} | |
under Python ${{ matrix.python }} | |
uses: felixfontein/ansible-test-gh-action@main | |
with: | |
ansible-core-version: ${{ matrix.ansible }} | |
integration-continue-on-error: 'false' | |
integration-diff: 'false' | |
integration-retry-on-error: 'true' | |
target-python-version: ${{ matrix.python }} | |
testing-type: integration | |
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429) | |
test-deps: >- | |
git+https://github.com/ansible-collections/community.crypto.git,main | |
git+https://github.com/ansible-collections/community.dns.git,main | |
git+https://github.com/ansible-collections/community.general.git,main | |
git+https://github.com/ansible-collections/community.sops.git,main | |
git+https://github.com/ansible-collections/community.internal_test_tools.git,main | |
ansible-lint: | |
name: ansible-lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
path: ansible_collections/felixfontein/acme | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install ansible-core and ansible-lint | |
run: | | |
pip install ansible-core --disable-pip-version-check | |
pip install git+https://github.com/ansible-community/ansible-lint.git#egg=ansible-lint --disable-pip-version-check | |
# Install dependencies | |
- name: Install all collection dependencies | |
run: | | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/amazon.aws.git ./ansible_collections/amazon/aws | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.aws.git ./ansible_collections/community/aws | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.crypto.git ./ansible_collections/community/crypto | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.dns.git ./ansible_collections/community/dns | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ./ansible_collections/community/general | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.sops.git ./ansible_collections/community/sops | |
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.internal_test_tools.git ./ansible_collections/community/internal_test_tools | |
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429) | |
# run: | | |
# ansible-galaxy collection install amazon.aws community.aws community.crypto community.dns community.general community.sops -p . | |
- name: Run ansible-lint | |
run: ansible-lint --offline | |
env: | |
ANSIBLE_COLLECTIONS_PATHS: ../../../ | |
working-directory: ./ansible_collections/felixfontein/acme | |
yamllint: | |
name: yamllint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install yamllint | |
run: | | |
pip install yamllint --disable-pip-version-check | |
- name: Run yamllint | |
run: yamllint . |