Skip to content

Upgrade GitHub Actions: upload-artifact and download-artifact #346

Upgrade GitHub Actions: upload-artifact and download-artifact

Upgrade GitHub Actions: upload-artifact and download-artifact #346

Workflow file for this run

name: tests
on:
push:
branches: [main, hotfix/hackathon]
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+'
- 'v[0-9]+\.[0-9]+\.[0-9]+'
pull_request:
workflow_dispatch:
schedule:
- cron: '0 0 1,16 * *'
concurrency:
group: >-
${{ github.workflow }}-${{ github.ref_type }}-
${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
wheel-distribution: ${{ steps.wheel-distribution.outputs.path }}
steps:
- uses: actions/checkout@v3
with: {fetch-depth: 0}
- uses: actions/setup-python@v4
id: setup-python
with: {python-version: "3.11"}
- name: Run static analysis and format checkers
run: pipx run pre-commit run --all-files --show-diff-on-failure
- name: Build package distribution files
run: >-
pipx run --python '${{ steps.setup-python.outputs.python-path }}'
tox -e clean,build
- name: Record the path of wheel distribution
id: wheel-distribution
run: echo "path=$(ls dist/*.whl)" >> $GITHUB_OUTPUT
- name: Store the distribution files for use in other stages
uses: actions/upload-artifact@v4
with:
name: python-distribution-files
path: dist/
retention-days: 1
include-hidden-files: true # Include hidden files if necessary
test:
needs: prepare
strategy:
matrix:
python:
- "3.10"
- "3.11"
platform:
- ubuntu-latest
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
id: setup-python
with:
python-version: ${{ matrix.python }}
- name: Retrieve pre-built distribution files
uses: actions/download-artifact@v4
with:
name: python-distribution-files
path: dist/
- name: Run tests
run: >-
pipx run --python '${{ steps.setup-python.outputs.python-path }}'
tox --installpkg '${{ needs.prepare.outputs.wheel-distribution }}'
-- -rFEx --durations 10 --color yes