build(deps): bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 #80
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
# Licensed under the AGPLv3+ License: https://www.gnu.org/licenses/ | |
# For details: https://github.com/msftcangoblowm/drain-swamp/blob/master/NOTICE.txt | |
# https://github.com/pyscaffold/pyscaffold/blob/master/src/pyscaffold/templates/github_ci_workflow.template | |
# https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts#passing-data-between-jobs-in-a-workflow | |
name: "Tests" | |
on: | |
push: | |
branches: | |
- master | |
- msftcangoblowm/* | |
pull_request: | |
workflow_dispatch: | |
defaults: | |
run: | |
shell: bash | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
COVERAGE_IGOR_VERBOSE: 1 | |
FORCE_COLOR: 1 # Get colored test output | |
LOCK_SUFFIX: ${{ vars.DRAINSWAMP_SET_LOCK == '1' && '.lock' || '.unlock' }} | |
permissions: | |
contents: read | |
concurrency: | |
group: >- | |
${{ github.workflow }}-${{ github.ref_type }}- | |
${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
name: "${{ matrix.python-version }} on ${{ matrix.os }}" | |
runs-on: "${{ matrix.os }}-latest" | |
# Don't run tests if the branch name includes "-notests" | |
if: "!contains(github.ref, '-notests')" | |
strategy: | |
matrix: | |
os: | |
- ubuntu | |
- macos | |
- windows | |
python-version: | |
# When changing this list, be sure to check the [gh] list in | |
# tox.ini so that tox will run properly. PYVERSIONS | |
# Available versions: | |
# https://github.com/actions/python-versions/blob/main/versions-manifest.json | |
# https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#available-versions-of-python-and-pypy | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
- "3.13" | |
# - "3.14" not available yet | |
- "pypy-3.9" | |
- "pypy-3.10" | |
exclude: | |
# https://github.com/pypy/pypy/issues/4958 | |
- os: windows | |
python-version: "pypy-3.9" | |
fail-fast: false | |
steps: | |
- id: prepare-config-settings | |
name: >- | |
Build Plugin parameters | |
uses: 'msftcangoblowm/drain-swamp-action@v1' | |
with: | |
plugin_parameters: '{"set-lock": "${{ vars.DRAINSWAMP_SET_LOCK }}", "kind": "current"}' | |
checkout: true | |
python_version: "${{ matrix.python-version }}" | |
- name: "Download artifact" | |
uses: actions/download-artifact@v4.1.8 | |
with: | |
name: config-settings-${{ matrix.os }}-${{ matrix.python-version }} | |
path: '${{ runner.temp }}' | |
- name: "Check out the repo" | |
uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7 | |
with: | |
repository: '${{ github.repository }}' | |
# fetch all branches and tags instead of only fetching the ref/SHA that triggered the workflow | |
fetch-depth: 0 | |
- name: "Set up Python" | |
uses: actions/setup-python@v5.2.0 | |
with: | |
python-version: "${{ matrix.python-version }}" | |
allow-prereleases: true | |
# At a certain point, installing dependencies failed on pypy 3.9 and | |
# 3.10 on Windows. Commenting out the cache here fixed it. Someday | |
# try using the cache again. | |
# cache: pip | |
# cache-dependency-path: | | |
# requirements/*${{ env.LOCK_SUFFIX }} | |
- name: "Show environment" | |
run: | | |
set -xe | |
python -VV | |
python -m site | |
# For extreme debugging: | |
# python -c "import urllib.request as r; exec(r.urlopen('https://bit.ly/pydoctor').read())" | |
env | |
- name: "Install dependencies" | |
run: | | |
python -m pip install -r requirements/tox${{ env.LOCK_SUFFIX }} | |
python -m pip install -r requirements/prod${{ env.LOCK_SUFFIX }} | |
python -m pip install -r requirements/kit${{ env.LOCK_SUFFIX }} | |
# Create generated files: version file and .lnk files. sdist tarball ignored | |
- name: "Build sdist to run plugins. Create generated files" | |
run: | | |
# TOML file location ${{ runner.temp }}/${{ steps.outcome.inputs.toml_file_name }} | |
# env.DS_CONFIG_SETTINGS contains (OS independent) path to TOML file | |
cat '${{ env.DS_CONFIG_SETTINGS }}' | |
python -m build | |
- name: "Run tox for ${{ matrix.python-version }}" | |
run: | | |
python -m tox -c tox-test.ini -- -rfsEX | |
- name: "Retry tox for ${{ matrix.python-version }}" | |
if: failure() | |
run: | | |
# `exit 1` makes sure that the job remains red with flaky runs | |
python -m tox -- -rfsEX --lf -vvvvv && exit 1 | |
# This job aggregates test results. It's the required check for branch protection. | |
# https://github.com/marketplace/actions/alls-green#why | |
# https://github.com/orgs/community/discussions/33579 | |
success: | |
name: Tests successful | |
# The tests didn't run if the branch name includes "-notests" | |
if: "!contains(github.ref, '-notests')" | |
needs: | |
- tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Decide whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe | |
with: | |
jobs: ${{ toJSON(needs) }} |