Skip to content

Release v1.3.3

Release v1.3.3 #13

# This file was last autogenerated by maturin v1.11.5
# To update, run
#
# maturin generate-ci github --manifest-path pineappl_cli/Cargo.toml > .github/workflow/release-wheels.yaml
#
# and carefully select the change from `git diff`
name: Release CLI wheels
# for available runner images see: https://github.com/actions/runner-images
on:
push:
tags:
- 'v[0-9]+*'
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
manylinux: 2_17
# - runner: ubuntu-22.04
# target: x86
# manylinux: 2_17
# - runner: ubuntu-22.04
# target: aarch64
# manylinux: 2_17
# - runner: ubuntu-22.04
# target: armv7
# manylinux: 2_17
# - runner: ubuntu-22.04
# target: s390x
# manylinux: 2_17
# - runner: ubuntu-22.04
# target: ppc64le
# manylinux: 2_17
steps:
- uses: actions/checkout@v6
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path pineappl_cli/Cargo.toml
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
manylinux: ${{ matrix.platform.manylinux }}
before-script-linux: |
# install statically-linked dependencies required to build the CLI
static=yes . maintainer/install-cli-dependencies.sh
echo "${APPL_IGRID_DIR}"
- name: Upload wheels
uses: actions/upload-artifact@v5
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
# musllinux:
# runs-on: ${{ matrix.platform.runner }}
# strategy:
# matrix:
# platform:
# - runner: ubuntu-22.04
# target: x86_64
# - runner: ubuntu-22.04
# target: x86
# - runner: ubuntu-22.04
# target: aarch64
# - runner: ubuntu-22.04
# target: armv7
# steps:
# - uses: actions/checkout@v6
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# target: ${{ matrix.platform.target }}
# args: --release --out dist --manifest-path pineappl_cli/Cargo.toml
# sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
# manylinux: musllinux_1_2
# - name: Upload wheels
# uses: actions/upload-artifact@v5
# with:
# name: wheels-musllinux-${{ matrix.platform.target }}
# path: dist
# windows:
# runs-on: ${{ matrix.platform.runner }}
# strategy:
# matrix:
# platform:
# - runner: windows-latest
# target: x64
# python_arch: x64
# - runner: windows-latest
# target: x86
# python_arch: x86
# - runner: windows-11-arm
# target: aarch64
# python_arch: arm64
# steps:
# - uses: actions/checkout@v6
# - name: Build wheels
# uses: PyO3/maturin-action@v1
# with:
# target: ${{ matrix.platform.target }}
# args: --release --out dist --manifest-path pineappl_cli/Cargo.toml
# sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
# - name: Upload wheels
# uses: actions/upload-artifact@v5
# with:
# name: wheels-windows-${{ matrix.platform.target }}
# path: dist
macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-15-intel
target: x86_64
- runner: macos-latest
target: aarch64
steps:
- uses: actions/checkout@v6
- name: Install dependencies
run: |
brew tap davidchall/hep
# install LHAPDF
brew install lhapdf
# install APPLgrid's dependencies; disable ROOT because its static libraries are missing
brew install --only-dependencies --without-hoppet --without-lhapdf --without-root applgrid
# install zlib, which is a dependency of APPLgrid but somehow missing
brew install zlib
# APPLgrid wants to be linked against zlib, and we need to find its static library via pkg-config
echo "PKG_CONFIG_PATH=$(find $(brew --cellar) -name '*.pc' -exec dirname {} + | sort -u | tr '\n' ':')" >> ${GITHUB_ENV}
# manually compile APPLgrid, because we need the file `appl_igrid.h` and the files it includes, which are possibly generated
export HOMEBREW_TEMP="$(pwd)"/tmp
mkdir -p ${HOMEBREW_TEMP}
brew install --build-from-source --keep-tmp --without-hoppet --without-lhapdf --without-root applgrid
echo "APPL_IGRID_DIR=$(find ${HOMEBREW_TEMP} -name appl_igrid.h -exec dirname {} +)" >> ${GITHUB_ENV}
# do not link against `gfortran`
sed 's/-lgfortran//g' $(command -v applgrid-config) > applgrid-config.new
mv applgrid-config.new $(command -v applgrid-config)
chmod +x $(command -v applgrid-config)
# install fastNLO
brew install --without-fastjet fastnlo
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist --manifest-path pineappl_cli/Cargo.toml
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
- name: Upload wheels
uses: actions/upload-artifact@v5
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist --manifest-path pineappl_cli/Cargo.toml
- name: Upload sdist
uses: actions/upload-artifact@v5
with:
name: wheels-sdist
path: dist
release:
name: Publish wheels
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
# needs: [linux, musllinux, windows, macos, sdist]
needs: [linux, macos, sdist]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v6
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v3
with:
subject-path: 'wheels-*/*'
- name: Install uv
if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: astral-sh/setup-uv@v7
- name: Publish to PyPI
if: ${{ startsWith(github.ref, 'refs/tags/') }}
run: uv publish 'wheels-*/*'
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN_CLI }}