diff --git a/.github/workflows/ansible-test.yml b/.github/workflows/ansible-test.yml deleted file mode 100644 index 07359c89..00000000 --- a/.github/workflows/ansible-test.yml +++ /dev/null @@ -1,132 +0,0 @@ ---- -# 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: EOL CI -'on': - # Run EOL CI against all pushes (direct commits, also merged PRs), Pull Requests - push: - branches: - - main - - stable-* - pull_request: - # Run EOL CI once per day (at 09:00 UTC) - schedule: - - cron: '0 9 * * *' - -concurrency: - # Make sure there is at most one active run per PR, but do not cancel any non-PR runs - group: ${{ github.workflow }}-${{ (github.head_ref && github.event.number) || github.run_id }} - cancel-in-progress: true - -jobs: - sanity: - name: EOL Sanity (Ⓐ${{ matrix.ansible }}) - strategy: - matrix: - ansible: - - '2.15' - runs-on: ubuntu-latest - steps: - - name: Perform sanity testing - uses: felixfontein/ansible-test-gh-action@main - with: - ansible-core-github-repository-slug: ${{ contains(fromJson('["2.10", "2.11"]'), matrix.ansible) && 'felixfontein/ansible' || 'ansible/ansible' }} - ansible-core-version: stable-${{ matrix.ansible }} - codecov-token: ${{ secrets.CODECOV_TOKEN }} - coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }} - pull-request-change-detection: 'true' - testing-type: sanity - pre-test-cmd: >- - git clone --depth=1 --single-branch --branch stable-1 https://github.com/ansible-collections/community.library_inventory_filtering.git ../../community/library_inventory_filtering_v1 - - units: - runs-on: ubuntu-latest - name: EOL 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: - - '2.15' - - steps: - - name: Perform unit testing against Ansible version ${{ matrix.ansible }} - uses: felixfontein/ansible-test-gh-action@main - with: - ansible-core-github-repository-slug: ${{ contains(fromJson('["2.10", "2.11"]'), matrix.ansible) && 'felixfontein/ansible' || 'ansible/ansible' }} - ansible-core-version: stable-${{ matrix.ansible }} - codecov-token: ${{ secrets.CODECOV_TOKEN }} - coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }} - pull-request-change-detection: 'true' - testing-type: units - pre-test-cmd: >- - git clone --depth=1 --single-branch --branch stable-1 https://github.com/ansible-collections/community.library_inventory_filtering.git ../../community/library_inventory_filtering_v1 - ; - git clone --depth=1 --single-branch --branch main https://github.com/ansible-collections/community.internal_test_tools.git ../../community/internal_test_tools - - integration: - runs-on: ubuntu-latest - name: EOL I (Ⓐ${{ matrix.ansible }}+${{ matrix.docker }}+py${{ matrix.python }}:${{ matrix.target }}) - strategy: - fail-fast: false - matrix: - ansible: - - '' - docker: - - '' - python: - - '' - target: - - '' - extra-constraints: - # Specifying this other than '' likely destroys change detection, but at least it will make - # CI pass when necessary... - - '' - exclude: - - ansible: '' - include: - # 2.15 - - ansible: '2.15' - docker: fedora37 - python: '' - target: azp/4/ - - ansible: '2.15' - docker: fedora37 - python: '' - target: azp/5/ - - 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('["2.10", "2.11"]'), matrix.ansible) && 'felixfontein/ansible' || 'ansible/ansible' }} - ansible-core-version: stable-${{ matrix.ansible }} - codecov-token: ${{ secrets.CODECOV_TOKEN }} - coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }} - docker-image: ${{ matrix.docker }} - integration-continue-on-error: 'false' - integration-diff: 'false' - integration-retry-on-error: 'true' - # TODO: remove "--branch stable-2" from community.crypto install once we're only using ansible-core 2.17 or newer! - pre-test-cmd: >- - mkdir -p ../../ansible - ; - git clone --depth=1 --single-branch https://github.com/ansible-collections/ansible.posix.git ../../ansible/posix - ; - git clone --depth=1 --single-branch --branch stable-2 https://github.com/ansible-collections/community.crypto.git ../../community/crypto - ; - git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general - ; - git clone --depth=1 --single-branch --branch stable-1 https://github.com/ansible-collections/community.library_inventory_filtering.git ../../community/library_inventory_filtering_v1 - ${{ matrix.extra-constraints && format('; echo ''{0}'' >> tests/utils/constraints.txt', matrix.extra-constraints) || '' }} - ; - cat tests/utils/constraints.txt - pull-request-change-detection: 'true' - target: ${{ matrix.target }} - target-python-version: ${{ matrix.python }} - testing-type: integration diff --git a/.github/workflows/nox.yml b/.github/workflows/nox.yml index d0b1e08b..ce365296 100644 --- a/.github/workflows/nox.yml +++ b/.github/workflows/nox.yml @@ -29,3 +29,7 @@ jobs: ansible-test: uses: ansible-community/antsibull-nox/.github/workflows/reusable-nox-matrix.yml@main + with: + change-detection-in-prs: true + upload-codecov: true + max-ansible-core: "2.15" diff --git a/antsibull-nox.toml b/antsibull-nox.toml index 1f492d7f..eb089d52 100644 --- a/antsibull-nox.toml +++ b/antsibull-nox.toml @@ -3,6 +3,7 @@ # SPDX-FileCopyrightText: 2025 Felix Fontein [collection_sources] +"ansible.posix" = "git+https://github.com/ansible-collections/ansible.posix.git,main" "community.general" = "git+https://github.com/ansible-collections/community.general.git,main" "community.internal_test_tools" = "git+https://github.com/ansible-collections/community.internal_test_tools.git,main" "community.library_inventory_filtering_v1" = "git+https://github.com/ansible-collections/community.library_inventory_filtering.git,stable-1" @@ -76,6 +77,23 @@ skip_directories = [ [sessions.build_import_check] run_galaxy_importer = true +[sessions.ansible_test_sanity] +include_devel = true + +[sessions.ansible_test_units] +include_devel = true + +[sessions.ansible_test_integration] + +session_name_template = "ansible-test-integration-{ansible_core}{dash_docker_short}{dash_python_version}{dash_target_dashized}" +display_name_template = "main+Ⓐ{ansible_core}{plus_docker_short}{plus_py_python_version}{plus_target}" +description_template = "Run main integration tests with ansible-core {ansible_core}{comma_docker_short}{comma_py_python_version}{comma_target}" + +[[sessions.ansible_test_integration.sessions]] +ansible_core = "2.15" +target = [ "azp/4/", "azp/5/" ] +docker = [ "fedora37" ] + [[sessions.ee_check.execution_environments]] name = "devel-ubi-9" description = "ansible-core devel @ RHEL UBI 9"