Skip to content

More explicit error handling; bump to v0.2.14 #271

More explicit error handling; bump to v0.2.14

More explicit error handling; bump to v0.2.14 #271

Workflow file for this run

name: CI
on:
push:
branches:
- main
- 'v[0-9]*' # stable branches
# filter pattern cheat sheet: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
tags:
- 'v[0-9]*'
pull_request:
env:
RUST_BACKTRACE: 1
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_qd_mpx]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: messense/maturin-action@v1
with:
working-directory: ${{ matrix.crate }}
manylinux: auto
command: build
container: ghcr.io/libertem/manylinux2014_x86_64:latest
args: --release --sdist -o target/dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.crate }}
path: ${{ matrix.crate }}/target/dist
linux-test:
runs-on: ubuntu-latest
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_asi_mpx3, libertem_qd_mpx, ipc_test, common]
toolchain: ["stable", "1.71"]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: rustup ${{ matrix.toolchain }}
run: rustup default ${{ matrix.toolchain }}
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: python3 -m pip install numpy opentelemetry-api
- run: cargo test
working-directory: ${{ matrix.crate }}
windows:
runs-on: windows-latest
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_qd_mpx]
steps:
- name: Install LLVM and Clang # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797
uses: KyleMayes/install-llvm-action@v2.0.5
# if: matrix.config.os == 'windows-latest'
with:
version: "14.0"
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
# if: matrix.config.os == 'windows-latest'
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: messense/maturin-action@v1
with:
working-directory: ${{ matrix.crate }}
command: build
args: --release -o dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.crate }}
path: ${{ matrix.crate }}/dist
windows-test:
runs-on: windows-latest
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_asi_mpx3, libertem_qd_mpx, ipc_test, common]
steps:
- name: Install LLVM and Clang # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797
uses: KyleMayes/install-llvm-action@v2.0.5
# if: matrix.config.os == 'windows-latest'
with:
version: "14.0"
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
directory: ${{ runner.temp }}/llvm
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
# if: matrix.config.os == 'windows-latest'
- uses: actions/checkout@v4
with:
submodules: recursive
- name: rustup stable
run: rustup default stable
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: python3 -m pip install numpy opentelemetry-api
- run: cargo test
working-directory: ${{ matrix.crate }}
macos-test:
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_asi_mpx3, libertem_qd_mpx]
os: [macos-12, macos-14]
runs-on: ${{ matrix.os }}
steps:
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$(brew --prefix llvm@15)/lib" >> $env:GITHUB_ENV
- uses: actions/checkout@v4
with:
submodules: recursive
- name: rustup stable
run: rustup default stable
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.3
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- run: python3 -m pip install numpy opentelemetry-api
- run: cargo test
working-directory: ${{ matrix.crate }}
macos:
runs-on: macos-latest
env:
MACOSX_DEPLOYMENT_TARGET: "11.0"
strategy:
matrix:
crate: [libertem_dectris, libertem_asi_tpx3, libertem_qd_mpx]
target: [x86_64, aarch64]
steps:
- name: Set LIBCLANG_PATH
run: echo "LIBCLANG_PATH=$(brew --prefix llvm@15)/lib" >> $env:GITHUB_ENV
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: messense/maturin-action@v1
with:
command: build
working-directory: ${{ matrix.crate }}
target: ${{ matrix.target }}
args: --release -o dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.crate }}-${{ matrix.target }}
path: ${{ matrix.crate }}/dist
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [ macos, windows, linux, linux-test, windows-test, macos-test ]
steps:
- uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
- name: Publish to PyPI
uses: messense/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing *
sccache: 'true'
- name: Upload assets to release
uses: softprops/action-gh-release@v2
with:
files: '*'