Skip to content

CI

CI #71

Workflow file for this run

---
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 06:00 UTC)
# This ensures that even if there haven't been commits that we are still
# testing against latest version of ansible-test for each ansible-core
# version
schedule:
- cron: "0 6 * * *"
workflow_call:
concurrency:
group: >-
${{ github.workflow }}-${{
github.event.pull_request.number || github.sha
}}
cancel-in-progress: true
jobs:
###
# Sanity tests (REQUIRED)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_sanity.html
sanity:
name: Sanity (Ⓐ${{ matrix.ansible }})
strategy:
matrix:
ansible:
- stable-2.16
- stable-2.17
- devel
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
# See the documentation for the following GitHub action on
# https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: ${{ matrix.ansible }}
testing-type: sanity
# OPTIONAL If your sanity tests require code
# from other collections, install them like this
# test-deps: >-
# ansible.netcommon
# ansible.utils
# OPTIONAL If set to true, will test only against changed files,
# which should improve CI performance. See limitations on
# https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
pull-request-change-detection: false
###
# Unit tests (OPTIONAL)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_units.html
#
# units:
# # 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' }}
# name: Units (Ⓐ${{ matrix.ansible }})
# strategy:
# # As soon as the first unit test fails, cancel the others to free up the CI queue
# fail-fast: true
# matrix:
# ansible:
# # Add new versions announced in
# # https://github.com/ansible-collections/news-for-maintainers in a timely manner,
# # consider dropping testing against EOL versions and versions you don't support.
# - stable-2.15
# - stable-2.16
# - stable-2.17
# - devel
# # - milestone
#
# steps:
# - name: >-
# Perform unit testing against
# Ansible version ${{ matrix.ansible }}
# # See the documentation for the following GitHub action on
# # https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
# uses: ansible-community/ansible-test-gh-action@release/v1
# with:
# ansible-core-version: ${{ matrix.ansible }}
# testing-type: units
# # OPTIONAL If your unit tests require code
# # from other collections, install them like this
# test-deps: >-
# ansible.netcommon
# ansible.utils
# # OPTIONAL If set to true, will test only against changed files,
# # which should improve CI performance. See limitations on
# # https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
# pull-request-change-detection: false
###
# Integration tests (RECOMMENDED)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_integration.html
# If the application you are testing is available as a docker container and you want to test
# multiple versions see the following for an example:
# https://github.com/ansible-collections/community.zabbix/tree/master/.github/workflows
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' }}
name: I (Ⓐ${{ matrix.ansible }}+py${{ matrix.python }})
strategy:
fail-fast: false
matrix:
ansible:
- devel
# - milestone
python:
- "3.11"
- "3.12"
include:
# Add new versions announced in
# https://github.com/ansible-collections/news-for-maintainers in a timely manner,
# consider dropping testing against EOL versions and versions you don't support.
# ansible-core 2.16
- ansible: stable-2.16
python: "3.10"
- ansible: stable-2.16
python: "3.11"
- ansible: stable-2.16
python: "3.12"
# ansible-core 2.17
- ansible: stable-2.17
python: "3.10"
- ansible: stable-2.17
python: "3.11"
- ansible: stable-2.17
python: "3.12"
steps:
- name: >-
Perform integration testing against
Ansible version ${{ matrix.ansible }}
under Python ${{ matrix.python }}
# See the documentation for the following GitHub action on
# https://github.com/ansible-community/ansible-test-gh-action/blob/main/README.md
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: ${{ matrix.ansible }}
# OPTIONAL command to run before invoking `ansible-test integration`
pre-test-cmd: pip install cryptography
target-python-version: ${{ matrix.python }}
testing-type: integration
# OPTIONAL If your integration tests require code
# from other collections, install them like this
test-deps: >-
ansible.netcommon
community.crypto
# OPTIONAL If set to true, will test only against changed files,
# which should improve CI performance. See limitations on
# https://github.com/ansible-community/ansible-test-gh-action#pull-request-change-detection
pull-request-change-detection: false
build:
runs-on: ubuntu-latest
steps:
- name: Perform integration for build
uses: ansible-community/ansible-test-gh-action@release/v1
with:
ansible-core-version: stable-2.17
target-python-version: "3.10"
testing-type: integration
test-deps: >-
ansible.netcommon
community.crypto
pull-request-change-detection: false
- name: Build collection
run: ansible-galaxy collection build ansible_collections/mgit_at/mgssl/ --force
check: # This job does nothing and is only used for the branch protection
# or multi-stage CI jobs, like making sure that all tests pass before
# a publishing job is started.
if: always()
needs:
- sanity
# - units
- integration
- build
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}