Skip to content

CI

CI #2210

Workflow file for this run

---
# Copyright (c) Ansible Project
# 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
# 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
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 05:30 UTC)
schedule:
- cron: '30 5 * * *'
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.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.9", "stable-2.10", "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 }}
codecov-token: ${{ secrets.CODECOV_TOKEN }}
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.9", "stable-2.10", "stable-2.11"]'
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
permissions:
contents: read
strategy:
matrix:
ansible:
- devel
docker_container:
- ubuntu2204
- ubuntu2404
- fedora40
sops_version:
- 3.5.0
- 3.6.1
- 3.7.3
- 3.8.1
- 3.9.2
python_version:
- ''
include:
# 2.15
- ansible: stable-2.15
docker_container: ubuntu2004
sops_version: 3.5.0
- ansible: stable-2.15
docker_container: ubuntu2204
sops_version: 3.6.0
# 2.16
- ansible: stable-2.16
docker_container: ubuntu2004
sops_version: 3.7.0
- ansible: stable-2.16
docker_container: ubuntu2204
sops_version: 3.7.3
# 2.17
- ansible: stable-2.17
docker_container: ubuntu2204
sops_version: 3.8.0
- ansible: stable-2.17
docker_container: fedora39
sops_version: 3.8.1
# 2.18
- ansible: stable-2.18
docker_container: ubuntu2404
sops_version: 3.9.0
# devel
- ansible: devel
docker_container: ubuntu2204
sops_version: 3.6.0
- ansible: devel
docker_container: ubuntu2204
sops_version: 3.7.0
- ansible: devel
docker_container: ubuntu2404
sops_version: 3.8.0
- ansible: devel
docker_container: fedora40
sops_version: 3.9.1
- ansible: devel
docker_container: quay.io/ansible-community/test-image:archlinux
python_version: '3.13'
sops_version: latest
- ansible: devel
docker_container: quay.io/ansible-community/test-image:debian-bookworm
python_version: '3.11'
sops_version: latest
- ansible: stable-2.15
docker_container: quay.io/ansible-community/test-image:debian-bullseye
python_version: '3.9'
sops_version: latest
steps:
- name: >-
Perform integration testing against
Ansible version ${{ matrix.ansible }}
under ${{ matrix.docker_container }}
with sops ${{ matrix.sops_version }}
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 }}
codecov-token: ${{ secrets.CODECOV_TOKEN }}
docker-image: ${{ matrix.docker_container }}
integration-continue-on-error: 'false'
integration-diff: 'false'
integration-retry-on-error: 'true'
# Adjust vars files so that sops ${{ matrix.sops_version }} is used
pre-test-cmd: |-
echo 'override_sops_version: ${{ matrix.sops_version }}' > tests/integration/integration_config.yml
echo 'github_token: ${{ secrets.GITHUB_TOKEN }}' >> tests/integration/integration_config.yml
test-deps: >-
git+https://github.com/ansible-collections/community.general.git,${{ matrix.ansible == 'stable-2.9' && 'stable-4' || 'main' }}
testing-type: integration
target-python-version: ${{ matrix.python_version }}
target: gha/main/
integration-install:
# 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' }}
permissions:
contents: read
strategy:
matrix:
ansible:
- devel
docker_container:
- ''
python_version:
- ''
target:
- gha/install/
test-deps:
- ''
github_latest_detection:
- ''
exclude:
- docker_container: ''
include:
# Install specific sops
- ansible: stable-2.17
docker_container: ubuntu2204
python_version: ''
target: gha/install/1/
- ansible: stable-2.17
docker_container: fedora39
python_version: ''
target: gha/install/1/
- ansible: stable-2.18
docker_container: ubuntu2404
python_version: ''
target: gha/install/1/
- ansible: stable-2.18
docker_container: fedora40
python_version: ''
target: gha/install/1/
# Install on localhost vs. remote host
- ansible: devel
docker_container: ubuntu2204
python_version: ''
target: gha/install/2/
# Install latest sops
- ansible: devel
docker_container: quay.io/ansible-community/test-image:archlinux
python_version: '3.13'
target: gha/install/3/
github_latest_detection: auto
test-deps: git+https://github.com/ansible-collections/community.general.git,main
- ansible: devel
docker_container: quay.io/ansible-community/test-image:debian-bookworm
python_version: '3.11'
target: gha/install/3/
github_latest_detection: auto
- ansible: stable-2.16
docker_container: quay.io/ansible-community/test-image:debian-bullseye
python_version: '3.9'
target: gha/install/3/
github_latest_detection: auto
- ansible: devel
docker_container: fedora40
python_version: ''
target: gha/install/3/
github_latest_detection: auto
- ansible: devel
docker_container: ubuntu2204
python_version: ''
target: gha/install/3/
github_latest_detection: api
- ansible: devel
docker_container: ubuntu2404
python_version: ''
target: gha/install/3/
github_latest_detection: latest-release
# - ansible: devel
# docker_container: alpine3.19 -- so far only alpine3 edge supports sops
# python_version: ''
# target: gha/install/3/
# github_latest_detection: auto
# test-deps: git+https://github.com/ansible-collections/community.general.git,main
steps:
- name: >-
Perform sops installation integration testing against
Ansible version ${{ matrix.ansible }}
under ${{ matrix.docker_container }}
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 }}
codecov-token: ${{ secrets.CODECOV_TOKEN }}
docker-image: ${{ matrix.docker_container }}
integration-continue-on-error: 'false'
integration-diff: 'false'
integration-retry-on-error: 'true'
pre-test-cmd: |-
echo 'github_token: ${{ secrets.GITHUB_TOKEN }}' > tests/integration/integration_config.yml
echo 'github_latest_detection: ${{ matrix.github_latest_detection || 'auto' }}' >> tests/integration/integration_config.yml
${{ matrix.pre-test-cmd || 'echo' }}
testing-type: integration
test-deps: ${{ matrix.test-deps }}
target-python-version: ${{ matrix.python_version }}
target: ${{ matrix.target }}