Skip to content

CI

CI #1960

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
- stable-2.17
- stable-2.18
- 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-github-repository-slug: ${{ contains(fromJson('["stable-2.9", "stable-2.10", "stable-2.11"]'), matrix.ansible) && 'ansible-community/eol-ansible' || 'ansible/ansible' }}
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:
- 3.8
- 3.9
- '3.10'
- '3.11'
- '3.12'
- '3.13'
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'
# 2.17
- ansible: stable-2.17
python: '3.7'
# 2.18
- ansible: stable-2.18
python: '3.8'
steps:
- name: >-
Perform integration testing against
Ansible version ${{ matrix.ansible }}
under Python ${{ matrix.python }}
uses: felixfontein/ansible-test-gh-action@main
with:
ansible-core-github-repository-slug: ${{ contains(fromJson('["stable-2.9", "stable-2.10", "stable-2.11"]'), matrix.ansible) && 'ansible-community/eol-ansible' || 'ansible/ansible' }}
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
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
git+https://github.com/ansible-collections/community.library_inventory_filtering.git,stable-1
ansible-lint:
name: ansible-lint
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
with:
path: ansible_collections/felixfontein/acme
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- 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: >-
ansible-galaxy collection install -p .
git+https://github.com/ansible-collections/amazon.aws.git,main
git+https://github.com/ansible-collections/community.aws.git,main
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
git+https://github.com/ansible-collections/community.library_inventory_filtering.git,stable-1
- name: Run ansible-lint
run: ansible-lint --offline
env:
ANSIBLE_COLLECTIONS_PATH: ../../../
working-directory: ./ansible_collections/felixfontein/acme
yamllint:
name: yamllint
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install yamllint
run: |
pip install yamllint --disable-pip-version-check
- name: Run yamllint
run: yamllint .