--- # 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 name: EOL CI on: # Run EOL CI against all pushes (direct commits, also merged PRs), Pull Requests push: branches: - stable-1 pull_request: 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.9' - '2.10' - '2.11' - '2.12' - '2.13' # 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( '["2.9", "2.10", "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('["2.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-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 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( '["2.9", "2.10", "2.11"]' ), matrix.ansible) && 'ubuntu-20.04' || '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.9' - '2.10' - '2.11' - '2.12' - '2.13' 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.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-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 integration: runs-on: ${{ matrix.runs_on }} name: EOL I (Ⓐ${{ matrix.ansible }}+${{ matrix.docker }}+py${{ matrix.python }}:${{ matrix.target }}) strategy: fail-fast: false matrix: ansible: - '' docker: - '' python: - '' target: - '' runs_on: - ubuntu-latest exclude: - ansible: '' include: # 2.9 - ansible: '2.9' docker: centos6 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 #- ansible: '2.9' # docker: centos7 # python: '' # target: shippable/posix/group1/ # runs_on: ubuntu-20.04 - ansible: '2.9' docker: ubuntu1604 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.9' docker: ubuntu1804 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.9' docker: default python: '2.7' target: shippable/cloud/group1/ runs_on: ubuntu-20.04 # 2.10 - ansible: '2.10' docker: centos6 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.10' docker: ubuntu1604 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.10' docker: default python: '3.6' target: shippable/cloud/group1/ runs_on: ubuntu-20.04 # 2.11 #- ansible: '2.11' # docker: centos7 # python: '' # target: shippable/posix/group1/ # runs_on: ubuntu-20.04 - ansible: '2.11' docker: opensuse15py2 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.11' docker: ubuntu1804 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.11' docker: default python: '3.8' target: shippable/cloud/group1/ runs_on: ubuntu-20.04 # 2.12 - ansible: '2.12' docker: centos6 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.12' docker: fedora33 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.12' docker: opensuse15 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.12' docker: ubuntu2004 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.12' docker: default python: '2.6' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.12' docker: default python: '3.9' target: shippable/cloud/group1/ runs_on: ubuntu-latest # 2.13 - ansible: '2.13' docker: centos7 python: '' target: shippable/posix/group1/ runs_on: ubuntu-20.04 - ansible: '2.13' docker: fedora34 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: fedora35 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: opensuse15py2 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: opensuse15 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: ubuntu1804 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: ubuntu2004 python: '' target: shippable/posix/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '2.7' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '3.5' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '3.6' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '3.7' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '3.9' target: shippable/cloud/group1/ runs_on: ubuntu-latest - ansible: '2.13' docker: default python: '3.10' target: shippable/cloud/group1/ runs_on: ubuntu-latest 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.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-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' pre-test-cmd: >- git clone --depth=1 --single-branch https://github.com/ansible-collections/community.internal_test_tools.git ../../community/internal_test_tools ; git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general pull-request-change-detection: 'true' target: ${{ matrix.target }} target-python-version: ${{ matrix.python }} testing-type: integration extra-sanity: name: Extra Sanity runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 with: path: ansible_collections/community/crypto - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install ansible-core run: pip install https://github.com/ansible/ansible/archive/stable-2.13.tar.gz --disable-pip-version-check - name: Install collection dependencies run: >- ansible-galaxy collection install -p . git+https://github.com/ansible-collections/community.internal_test_tools.git,main - name: Run sanity tests run: ../../community/internal_test_tools/tools/run.py --color working-directory: ./ansible_collections/community/crypto