--- # 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.11' - '2.12' - '2.13' - '2.14' - '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.11' - '2.12' - '2.13' - '2.14' - '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.11 - ansible: '2.11' docker: alpine3 python: '' target: azp/4/ extra-constraints: urllib3 < 2.0.0 - ansible: '2.11' docker: alpine3 python: '' target: azp/5/ - ansible: '2.11' docker: alpine3 python: '' target: azp/6/ # 2.12 - ansible: '2.12' docker: fedora33 python: '' target: azp/4/ - ansible: '2.12' docker: fedora33 python: '' target: azp/5/ - ansible: '2.12' docker: fedora33 python: '' target: azp/6/ - ansible: '2.12' docker: fedora34 python: '' target: azp/4/ - ansible: '2.12' docker: fedora34 python: '' target: azp/5/ - ansible: '2.12' docker: fedora34 python: '' target: azp/6/ - ansible: '2.12' docker: ubuntu1804 python: '' target: azp/4/ - ansible: '2.12' docker: ubuntu1804 python: '' target: azp/5/ - ansible: '2.12' docker: ubuntu1804 python: '' target: azp/6/ # 2.13 - ansible: '2.13' docker: fedora35 python: '' target: azp/4/ - ansible: '2.13' docker: fedora35 python: '' target: azp/5/ - ansible: '2.13' docker: fedora35 python: '' target: azp/6/ - ansible: '2.13' docker: opensuse15py2 python: '' target: azp/4/ - ansible: '2.13' docker: opensuse15py2 python: '' target: azp/5/ - ansible: '2.13' docker: opensuse15py2 python: '' target: azp/6/ - ansible: '2.13' docker: alpine3 python: '' target: azp/4/ - ansible: '2.13' docker: alpine3 python: '' target: azp/5/ - ansible: '2.13' docker: alpine3 python: '' target: azp/6/ # 2.14 - ansible: '2.14' docker: alpine3 python: '' target: azp/4/ - ansible: '2.14' docker: alpine3 python: '' target: azp/5/ - ansible: '2.14' docker: alpine3 python: '' target: azp/6/ # 2.15 - ansible: '2.15' docker: fedora37 python: '' target: azp/4/ - ansible: '2.15' docker: fedora37 python: '' target: azp/5/ - ansible: '2.15' docker: fedora37 python: '' target: azp/6/ 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 --branch stable-9 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