Skip to content

github actions: Try to parameterise testing #3

github actions: Try to parameterise testing

github actions: Try to parameterise testing #3

Workflow file for this run

name: Pre-merge and post-merge tests
on:
push:
pull_request:
workflow_dispatch:
inputs:
run-slow:
description: "Whether to run slow tests (normally they are skipped)"
type: boolean
required: false
default: false
permissions:
contents: read
jobs:
test:
name: Run tests
uses: ./.github/workflows/test.yml
# https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/
if: >
github.event_name != 'pull_request'
|| github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
strategy:
matrix:
python:
- "3.6"
- "3.8"
- "3.12"
platform:
# This package is supposed to be OS-independent and is unlikely to have
# OS-specific bugs, so we conserve runner usage by only testing on Linux
# during pre-merge and post-merge testing. If it works on Linux, it'll
# probably work on Mac and Windows too. But if an OS-specific bug does
# slip through, we should catch it in pre-release testing.
- ubuntu-latest
force-minimum-dependencies:
- false
exclude:
# Python 3.5 does not run on ubuntu-latest
- python: "3.5"
platform: ubuntu-latest
include:
- python: "3.5"
platform: ubuntu-20.04
force-minimum-dependencies: false
# For testing forced minimum deps, use the latest stable version of Python
# on which those dependencies can be installed
- python: "3.12"
platform: ubuntu-latest
force-minimum-dependencies: true
with:
python-version: ${{ matrix.python }}
platform: ${{ matrix.platform }}
force-minimum-dependencies: ${{ matrix.force-minimum-dependencies }}
run-slow: ${{ inputs.run-slow || false }}
check: # This job does nothing and is only used for the branch protection
# https://wildwolf.name/github-actions-how-to-avoid-running-the-same-workflow-multiple-times/
if: >
github.event_name != 'pull_request'
|| github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
needs:
- test
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}