Repository navigation
Release v1.3.3 #13
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 }} |