Skip to content

Add Dependabot configuration for GitHub Actions #17

Add Dependabot configuration for GitHub Actions

Add Dependabot configuration for GitHub Actions #17

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
FORCE_COLOR: 3
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.12"
- run: pipx run ruff check --output-format=github .
- run: pipx run ruff format --check --diff .
wheels:
name: Wheel on ${{ matrix.os }} (${{ matrix.arch }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
arch: x86_64
# macos-15 rather than macos-14: the arm64 binaries currently declare a minimum of
# macOS 15, so a macOS 14 runner cannot install or execute the wheel it just built
# and the test step could never pass. Lowering the binaries' deployment target is a
# build-layer change; this runner works either way.
- os: macos-15
arch: arm64
- os: macos-15-intel
arch: x86_64
- os: windows-latest
arch: AMD64
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
# Builds the wheel, then runs tests/ against the installed wheel inside cibuildwheel's
# test environment (test-command in pyproject.toml). That covers the DICOM round-trip,
# so a broken archive pin or a binary that cannot read DICOM fails here rather than
# after publishing.
- uses: pypa/cibuildwheel@v4.1.1
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_SKIP: "*musllinux*"
- name: Report wheel tag
shell: bash
run: ls -la wheelhouse/
- uses: actions/upload-artifact@v7
with:
name: wheel-${{ matrix.os }}-${{ matrix.arch }}
path: wheelhouse/*.whl
# Guards the seam: confirms the archives named in plastimatchUrls.cmake still exist at the
# pinned URLs with the pinned checksums. If the release hosting them is re-cut, this fails
# with a clear message instead of every wheel job failing on a hash mismatch.
verify_pins:
name: Verify archive pins
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Check every pinned archive
run: python .github/scripts/verify_pins.py