Skip to content

CI

CI #56

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.9
- stable-2.10
- 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.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-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.9", "stable-2.10", "stable-2.11"]'
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
permissions:
contents: read
strategy:
matrix:
ansible:
- devel
docker_container:
- ubuntu2004
- ubuntu2204
- fedora38
sops_version:
- 3.5.0
- 3.6.0
- 3.7.3
- 3.8.0
python_version:
- ''
include:
# 2.9
- ansible: stable-2.9
docker_container: ubuntu1604
sops_version: 3.5.0
- ansible: stable-2.9
docker_container: ubuntu1804
sops_version: 3.7.1
# 2.10
- ansible: stable-2.10
docker_container: ubuntu1804
sops_version: 3.6.0
# 2.11
- ansible: stable-2.11
docker_container: ubuntu2004
sops_version: 3.7.2
# 2.12
- ansible: stable-2.12
docker_container: ubuntu2004
sops_version: 3.7.0
# 2.13
- ansible: stable-2.13
docker_container: ubuntu2004
sops_version: 3.7.3
# 2.14
- ansible: stable-2.14
docker_container: ubuntu2204
sops_version: 3.7.3
# 2.15
- ansible: stable-2.15
docker_container: ubuntu2204
sops_version: 3.7.3
# 2.16
- ansible: stable-2.16
docker_container: ubuntu2204
sops_version: 3.8.0
- ansible: stable-2.16
docker_container: quay.io/ansible-community/test-image:centos-stream8
python_version: '3.6'
sops_version: latest
# devel
- ansible: devel
docker_container: quay.io/ansible-community/test-image:archlinux
python_version: '3.11'
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-version: ${{ matrix.ansible }}
docker-image: ${{ matrix.docker_container }}
integration-continue-on-error: 'false'
integration-diff: 'false'
integration-retry-on-error: 'true'
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429)
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
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general
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/
pre-test-cmd:
- ''
github_latest_detection:
- ''
exclude:
- docker_container: ''
include:
# Install specific sops
- ansible: devel
docker_container: ubuntu2204
python_version: ''
target: gha/install/1/
- ansible: devel
docker_container: fedora38
python_version: ''
target: gha/install/1/
# Install on localhost vs. remote host
- ansible: devel
docker_container: ubuntu2004
python_version: ''
target: gha/install/2/
# Install latest sops
- ansible: devel
docker_container: quay.io/ansible-community/test-image:archlinux
python_version: '3.11'
target: gha/install/3/
github_latest_detection: auto
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429)
pre-test-cmd: |-
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general
- ansible: stable-2.15
docker_container: quay.io/ansible-community/test-image:centos-stream8
python_version: '3.9'
target: gha/install/3/
github_latest_detection: auto
- 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: fedora38
python_version: ''
target: gha/install/3/
github_latest_detection: auto
- ansible: devel
docker_container: ubuntu2004
python_version: ''
target: gha/install/3/
github_latest_detection: api
- ansible: devel
docker_container: ubuntu2204
python_version: ''
target: gha/install/3/
github_latest_detection: latest-release
# - ansible: devel
# docker_container: alpine3 -- so far only alpine3 edge supports sops
# python_version: ''
# target: gha/install/3/
# github_latest_detection: auto
# # NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429)
# pre-test-cmd: |-
# git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general
# Install 3.8.0-rc.1 prerelease
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-version: ${{ matrix.ansible }}
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
target-python-version: ${{ matrix.python_version }}
target: ${{ matrix.target }}