Simpler way to ensure dependencies are installed in CI #491
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: Test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
concurrency: | |
group: >- | |
${{ github.workflow }}- | |
${{ github.ref_type }}- | |
${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
matrix: | |
platform: ["ubuntu-latest", "windows-latest"] | |
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" , "3.12", "3.13" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install tox tox-gh-actions codecov | |
- name: Run tests | |
run: tox | |
- name: Codecov upload | |
run: codecov | |
test-py36: | |
runs-on: "ubuntu-20.04" | |
strategy: | |
matrix: | |
python-version: [ "3.6", ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install tox tox-gh-actions codecov | |
- name: Run tests | |
run: tox | |
- name: Codecov upload | |
run: codecov | |
packages: | |
runs-on: ubuntu-latest | |
needs: [test, test-py36] | |
permissions: | |
id-token: write # OIDC for uploading to PyPI | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Build flit_core & flit packages | |
run: | | |
python flit_core/build_dists.py | |
pip install requests docutils | |
PYTHONPATH=flit_core/ python -m flit build | |
# Copy flit_core packages to same location | |
cp flit_core/dist/* dist/ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: packages | |
path: ./dist/* | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: ${{ startsWith(github.ref, 'refs/tags/') }} |