summaryrefslogtreecommitdiffstats
path: root/.github/workflows/tox.yml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 00:24:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 00:24:37 +0000
commit1022b2cebe73db426241c2f420d4ee9f6f3c1bed (patch)
treea5c38ccfaa66e8a52767dec01d3598b67a7422a8 /.github/workflows/tox.yml
parentInitial commit. (diff)
downloadpython-ansible-compat-1022b2cebe73db426241c2f420d4ee9f6f3c1bed.tar.xz
python-ansible-compat-1022b2cebe73db426241c2f420d4ee9f6f3c1bed.zip
Adding upstream version 4.1.11.upstream/4.1.11
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '.github/workflows/tox.yml')
-rw-r--r--.github/workflows/tox.yml110
1 files changed, 110 insertions, 0 deletions
diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml
new file mode 100644
index 0000000..f56f266
--- /dev/null
+++ b/.github/workflows/tox.yml
@@ -0,0 +1,110 @@
+name: tox
+on:
+ create: # is used for publishing to PyPI and TestPyPI
+ tags: # any tag regardless of its name, no branches
+ - "**"
+ push: # only publishes pushes to the main branch to TestPyPI
+ branches: # any integration branch but not tag
+ - "main"
+ pull_request:
+ schedule:
+ - cron: 1 0 * * * # Run daily at 0:01 UTC
+ workflow_call:
+
+jobs:
+ pre:
+ name: pre
+ runs-on: ubuntu-22.04
+ outputs:
+ matrix: ${{ steps.generate_matrix.outputs.matrix }}
+ steps:
+ - name: Determine matrix
+ id: generate_matrix
+ uses: coactions/dynamic-matrix@v1
+ with:
+ min_python: "3.9"
+ max_python: "3.12"
+ default_python: "3.10"
+ other_names: |
+ lint
+ docs
+ pkg
+ py39-ansible212
+ py39-ansible213
+ py39-ansible214
+ py39-ansible215
+ py310-ansible215
+ py311-ansible215
+ py312-ansible216
+ py312-devel
+ smoke
+ platforms: linux,macos
+ macos: minmax
+ build:
+ name: ${{ matrix.name }}
+ runs-on: ${{ matrix.os || 'ubuntu-22.04' }}
+ needs: pre
+ strategy:
+ fail-fast: false
+ matrix: ${{ fromJson(needs.pre.outputs.matrix) }}
+ env:
+ FORCE_COLOR: 1
+
+ steps:
+ - name: Check out src from Git
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # needed by setuptools-scm
+
+ - name: Set up Python ${{ matrix.python_version }}
+ uses: actions/setup-python@v5
+ with:
+ python-version: ${{ matrix.python_version }}
+
+ - name: Pre-commit cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.cache/pre-commit
+ key: ${{ matrix.name }}-pre-commit-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }}
+
+ - name: Pip cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.cache/pip
+ key: ${{ matrix.name }}-pip-${{ hashFiles('setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml') }}
+
+ - name: Install tox
+ run: python3 -m pip install --upgrade 'tox>=4.0.3'
+
+ - name: Initialize tox envs
+ run: python -m tox --notest --skip-missing-interpreters false -vv -e ${{ matrix.passed_name }}
+
+ - name: Test with tox
+ run: python -m tox -e ${{ matrix.passed_name }}
+
+ - name: Archive logs
+ uses: actions/upload-artifact@v3
+ with:
+ name: logs.zip
+ path: .tox/**/log/
+
+ - name: Upload coverage data
+ if: ${{ startsWith(matrix.passed_name, 'py') }}
+ uses: codecov/codecov-action@v3
+ with:
+ name: ${{ matrix.passed_name }}
+ fail_ci_if_error: false # see https://github.com/codecov/codecov-action/issues/598
+ token: ${{ secrets.CODECOV_TOKEN }}
+ verbose: true # optional (default = false)
+
+ check: # This job does nothing and is only used for the branch protection
+ if: always()
+
+ needs:
+ - build
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Decide whether the needed jobs succeeded or failed
+ uses: re-actors/alls-green@release/v1
+ with:
+ jobs: ${{ toJSON(needs) }}