Recreate container if container definition has changed and restart is true, simplify logic #3545
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Collection build and tests | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: 3 0 * * * # Run daily at 0:03 UTC | |
jobs: | |
build-collection-artifact: | |
name: Build | |
runs-on: ${{ matrix.runner-os }} | |
strategy: | |
matrix: | |
runner-os: | |
- ubuntu-22.04 | |
ansible-version: | |
- git+https://github.com/ansible/ansible.git@stable-2.15 | |
runner-python-version: | |
- 3.9 | |
steps: | |
- name: Check out ${{ github.repository }} on disk | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.runner-python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.runner-python-version }} | |
- name: Set up pip cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('tests/sanity/requirements.txt') }}-${{ hashFiles('tests/unit/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
${{ runner.os }}- | |
- name: Install Ansible ${{ matrix.ansible-version }} | |
run: >- | |
python -m pip install --user '${{ matrix.ansible-version }}' | |
- name: Build a collection tarball | |
run: >- | |
~/.local/bin/ansible-galaxy collection build --output-path | |
"${GITHUB_WORKSPACE}/.cache/collection-tarballs" | |
- name: Store migrated collection artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: collection | |
path: .cache/collection-tarballs | |
sanity-test-collection-via-containers: | |
name: Sanity in container via Py-${{ matrix.python-version }} & ${{ matrix.ansible-version }} | |
needs: | |
- build-collection-artifact | |
runs-on: ${{ matrix.runner-os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
runner-os: | |
- ubuntu-22.04 | |
runner-python-version: | |
- '3.10' | |
ansible-version: | |
- ansible<2.10 | |
- git+https://github.com/ansible/ansible.git@stable-2.17 | |
- git+https://github.com/ansible/ansible.git@devel | |
python-version: | |
- '3.10' | |
include: | |
- runner-os: ubuntu-22.04 | |
runner-python-version: '3.11' | |
ansible-version: git+https://github.com/ansible/ansible.git@devel | |
python-version: '3.11' | |
- runner-os: ubuntu-22.04 | |
runner-python-version: 3.8 | |
ansible-version: ansible<2.10 | |
python-version: 3.8 | |
exclude: | |
- runner-os: ubuntu-22.04 | |
runner-python-version: '3.10' | |
ansible-version: git+https://github.com/ansible/ansible.git@devel | |
python-version: '3.10' | |
- runner-os: ubuntu-22.04 | |
runner-python-version: '3.10' | |
ansible-version: ansible<2.10 | |
python-version: '3.10' | |
steps: | |
- name: Set up Python ${{ matrix.runner-python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.runner-python-version }} | |
- name: Set up pip cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ github.ref }}-sanity-containers | |
restore-keys: | | |
${{ runner.os }}-pip- | |
${{ runner.os }}- | |
- name: Install Ansible ${{ matrix.ansible-version }} | |
run: >- | |
python -m pip install --user '${{ matrix.ansible-version }}' | |
- name: Download migrated collection artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: collection | |
path: .cache/collection-tarballs | |
- name: Install the collection tarball | |
run: >- | |
~/.local/bin/ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz | |
- name: Run collection sanity tests | |
run: >- | |
~/.local/bin/ansible-test sanity | |
--color | |
--requirements | |
--python "${{ matrix.python-version }}" -vvv | |
plugins/ tests/ | |
working-directory: >- | |
/home/runner/.ansible/collections/ansible_collections/containers/podman | |
# When we have unit tests, add them here |