Skip to content

Mark tests that are expected to fail with xfail rather than just not running them #344

Mark tests that are expected to fail with xfail rather than just not running them

Mark tests that are expected to fail with xfail rather than just not running them #344

name: tests
on:
push:
branches:
- 'main'
tags:
- 'v**'
pull_request:
workflow_dispatch:
concurrency:
# Cancel this workflow if it is running,
# and then changes are applied on top of the HEAD of the branch,
# triggering another run of the workflow
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/lint@v2
manifest:
name: Check Manifest
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/check_manifest@v2
test:
needs: [linting, manifest]
name: ${{ matrix.os }} py${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Run all supported Python versions on linux
python-version: ["3.9", "3.10", "3.11"]
os: [ubuntu-latest]
# Include one windows and macos run each of Intel/ARM
include:
- os: macos-13
python-version: "3.11"
- os: macos-latest
python-version: "3.11"
- os: windows-latest
python-version: "3.11"
steps:
- name: Cache brainglobe directory
uses: actions/cache@v3
with:
path: | # ensure we don't cache any interrupted atlas download and extraction, if e.g. we cancel the workflow manually
~/.brainglobe
!~/.brainglobe/atlas.tar.gz
key: brainglobe
- name: Install hdf5 libs for Mac
if: runner.os == 'macOS'
run: brew install hdf5
# Helps set up VTK with a headless display
- uses: pyvista/setup-headless-display-action@v2
# Sets up ffmpeg to we can run video tests on CI
- uses: FedericoCarboni/setup-ffmpeg@v2
if: matrix.os != 'macos-latest'
id: setup-ffmpeg
- name: setup ffmpeg on latest Mac with brew
if: matrix.os == 'macos-latest'
run: brew install ffmpeg
# Run tests
- uses: neuroinformatics-unit/actions/test@v2
with:
python-version: ${{ matrix.python-version }}
secret-codecov-token: ${{ secrets.CODECOV_TOKEN }}
build_sdist_wheels:
name: Build source distribution
needs: [test]
if: github.event_name == 'push' && github.ref_type == 'tag'
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/build_sdist_wheels@v2
upload_all:
name: Publish build distributions
needs: [build_sdist_wheels]
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/upload_pypi@v2
with:
secret-pypi-key: ${{ secrets.TWINE_API_KEY }}