Skip to content

Pre-release checks #1607

Pre-release checks

Pre-release checks #1607

Workflow file for this run

name: Pre-release checks
# This file tests against pre-release wheels for dependencies
on:
push:
branches:
- master
- maint/*
pull_request:
branches:
- master
- maint/*
schedule:
- cron: '0 0 * * *'
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
pre-release:
# Check pre-releases of dependencies on stable Python
runs-on: ${{ matrix.os }}
continue-on-error: true
strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
python-version: ["3.9", "3.10", "3.11", "3.12"]
architecture: ['x64', 'x86']
install: ['pip']
check: ['test']
pip-flags: ['PRE_PIP_FLAGS']
depends: ['REQUIREMENTS']
optional-depends: ['DEFAULT_OPT_DEPENDS']
include:
# Pydicom master
- os: ubuntu-latest
python-version: "3.11"
install: pip
check: test
pip-flags: ''
depends: REQUIREMENTS
optional-depends: PYDICOM_MASTER
exclude:
- os: ubuntu-latest
architecture: x86
- os: macos-latest
architecture: x86
- python-version: '3.12'
architecture: x86
env:
DEPENDS: ${{ matrix.depends }}
OPTIONAL_DEPENDS: ${{ matrix.optional-depends }}
INSTALL_TYPE: ${{ matrix.install }}
CHECK_TYPE: ${{ matrix.check }}
EXTRA_PIP_FLAGS: ${{ matrix.pip-flags }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
allow-prereleases: true
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Create virtual environment
run: tools/ci/create_venv.sh
- name: Build archive
run: |
source tools/ci/build_archive.sh
echo "ARCHIVE=$ARCHIVE" >> $GITHUB_ENV
- name: Install dependencies
run: tools/ci/install_dependencies.sh
- name: Install NiBabel
run: tools/ci/install.sh
- name: Run tests
run: tools/ci/check.sh
if: ${{ matrix.check != 'skiptests' }}
- uses: codecov/codecov-action@v3
if: ${{ always() }}
with:
files: cov.xml
- name: Upload pytest test results
uses: actions/upload-artifact@v3
with:
name: pytest-results-${{ matrix.os }}-${{ matrix.python-version }}
path: for_testing/test-results.xml
if: ${{ always() && matrix.check == 'test' }}