diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 13:38:37 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-03 13:38:37 +0000 |
commit | 23e67a23a7b57fa5cb6fc92bd0843c3707d56ef9 (patch) | |
tree | 88110359f0deb3bb263ade4ed0e888da6b7fdea4 /.github | |
parent | Adding upstream version 24.5.1. (diff) | |
download | python-ansible-compat-upstream.tar.xz python-ansible-compat-upstream.zip |
Adding upstream version 24.6.0.upstream/24.6.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/tox.yml | 94 |
1 files changed, 70 insertions, 24 deletions
diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 26df89b..6a7cd52 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -12,8 +12,8 @@ on: workflow_call: jobs: - pre: - name: pre + prepare: + name: prepare runs-on: ubuntu-22.04 outputs: matrix: ${{ steps.generate_matrix.outputs.matrix }} @@ -29,33 +29,33 @@ jobs: lint docs pkg - py39-ansible212 - py39-ansible213 py39-ansible214 py39-ansible215 py310-ansible215 + py310-ansible217 py311-ansible215 py312-ansible216 + py312-ansible217 py312-devel smoke platforms: linux,macos macos: minmax build: name: ${{ matrix.name }} - environment: test + runs-on: ${{ matrix.os || 'ubuntu-22.04' }} - needs: pre + needs: prepare strategy: fail-fast: false - matrix: ${{ fromJson(needs.pre.outputs.matrix) }} + matrix: ${{ fromJson(needs.prepare.outputs.matrix) }} env: FORCE_COLOR: 1 - + PYTEST_REQPASS: 108 steps: - - name: Check out src from Git - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 # needed by setuptools-scm + submodules: true - name: Set up Python ${{ matrix.python_version }} uses: actions/setup-python@v5 @@ -80,37 +80,78 @@ jobs: - name: Initialize tox envs run: python3 -m tox --notest --skip-missing-interpreters false -vv -e ${{ matrix.passed_name }} - - name: Test with tox + - name: tox -e ${{ matrix.passed_name }} run: python3 -m tox -e ${{ matrix.passed_name }} - name: Archive logs uses: actions/upload-artifact@v4 with: name: logs-${{ matrix.name }}.zip - path: .tox/**/log/ + path: | + .tox/**/log/ + .tox/**/.coverage* + .tox/**/coverage.xml - - name: Upload coverage data - if: ${{ startsWith(matrix.passed_name, 'py') }} - uses: codecov/codecov-action@v4 - with: - name: ${{ matrix.passed_name }} - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true # see https://github.com/codecov/codecov-action/issues/598 - verbose: true # optional (default = false) + - name: Report failure if git reports dirty status + run: | + if [[ -n $(git status -s) ]]; then + # shellcheck disable=SC2016 + echo -n '::error file=git-status::' + printf '### Failed as git reported modified and/or untracked files\n```\n%s\n```\n' "$(git status -s)" | tee -a "$GITHUB_STEP_SUMMARY" + exit 99 + fi + # https://github.com/actions/toolkit/issues/193 - check: # This job does nothing and is only used for the branch protection + check: if: always() + permissions: + id-token: write + checks: read needs: - build - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest + steps: + # checkout needed for codecov action which needs codecov.yml file + - uses: actions/checkout@v4 + + - name: Set up Python # likely needed for coverage + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - run: pip3 install 'coverage>=7.5.1' + - name: Merge logs into a single archive uses: actions/upload-artifact/merge@v4 with: name: logs.zip - pattern: logs*.zip - delete-merged: true + pattern: logs-*.zip + # artifacts like py312.zip and py312-macos do have overlapping files + separate-directories: true + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: logs.zip + path: . + + - name: Check for expected number of coverage.xml reports + run: | + JOBS_PRODUCING_COVERAGE=14 + if [ "$(find . -name coverage.xml | wc -l | bc)" -ne "${JOBS_PRODUCING_COVERAGE}" ]; then + echo "::error::Number of coverage.xml files was not the expected one (${JOBS_PRODUCING_COVERAGE}): $(find . -name coverage.xml |xargs echo)" + exit 1 + fi + + - name: Upload coverage data + uses: codecov/codecov-action@v4 + with: + name: ${{ matrix.passed_name }} + # verbose: true # optional (default = false) + fail_ci_if_error: true + use_oidc: true # cspell:ignore oidc - name: Check codecov.io status if: github.event_name == 'pull_request' @@ -120,3 +161,8 @@ jobs: uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }} + + - name: Delete Merged Artifacts + uses: actions/upload-artifact/merge@v4 + with: + delete-merged: true |