Skip to content

CI

CI #1375

Workflow file for this run

---
# 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 .