From 859bc5064678ba0d3fd7884ff2a41e80f83b2a34 Mon Sep 17 00:00:00 2001 From: shimwell Date: Mon, 21 Oct 2024 10:54:48 +0100 Subject: [PATCH] trying latest mat version; --- .github/workflows/python-publish.yml | 111 +++++++++++++++++++++++---- 1 file changed, 94 insertions(+), 17 deletions(-) diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index f951a96..542be0e 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -1,16 +1,15 @@ -# This file is autogenerated by maturin v1.5.1 +# This file is autogenerated by maturin v1.7.4 # To update, run # # maturin generate-ci github -o .github/workflows/python-publish.yml --pytest # -# modifications we made to support https://www.maturin.rs/distribution#using-pypis-trusted-publishing - name: CI on: push: branches: - main + - master tags: - '*' pull_request: @@ -18,7 +17,6 @@ on: permissions: contents: read - id-token: write jobs: linux: @@ -42,7 +40,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -60,12 +58,14 @@ jobs: shell: bash run: | set -e - pip install example_python_package_with_rust_backend --find-links dist --force-reinstall + python3 -m venv .venv + source .venv/bin/activate + pip install fusion_neutron_utils --find-links dist --force-reinstall pip install pytest pytest - name: pytest if: ${{ !startsWith(matrix.platform.target, 'x86') && matrix.platform.target != 'ppc64' }} - uses: uraimo/run-on-arch-action@v2.5.0 + uses: uraimo/run-on-arch-action@v2 with: arch: ${{ matrix.platform.target }} distro: ubuntu22.04 @@ -76,7 +76,68 @@ jobs: pip3 install -U pip pytest run: | set -e - pip3 install example_python_package_with_rust_backend --find-links dist --force-reinstall + pip3 install fusion_neutron_utils --find-links dist --force-reinstall + pytest + + musllinux: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: ubuntu-latest + target: x86_64 + - runner: ubuntu-latest + target: x86 + - runner: ubuntu-latest + target: aarch64 + - runner: ubuntu-latest + target: armv7 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + sccache: 'true' + manylinux: musllinux_1_2 + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-musllinux-${{ matrix.platform.target }} + path: dist + - name: pytest + if: ${{ startsWith(matrix.platform.target, 'x86_64') }} + uses: addnab/docker-run-action@v3 + with: + image: alpine:latest + options: -v ${{ github.workspace }}:/io -w /io + run: | + set -e + apk add py3-pip py3-virtualenv + python3 -m virtualenv .venv + source .venv/bin/activate + pip install fusion_neutron_utils --no-index --find-links dist --force-reinstall + pip install pytest + pytest + - name: pytest + if: ${{ !startsWith(matrix.platform.target, 'x86') }} + uses: uraimo/run-on-arch-action@v2 + with: + arch: ${{ matrix.platform.target }} + distro: alpine_latest + githubToken: ${{ github.token }} + install: | + apk add py3-virtualenv + run: | + set -e + python3 -m virtualenv .venv + source .venv/bin/activate + pip install pytest + pip install fusion_neutron_utils --find-links dist --force-reinstall pytest windows: @@ -92,7 +153,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: 3.x architecture: ${{ matrix.platform.target }} - name: Build wheels uses: PyO3/maturin-action@v1 @@ -110,7 +171,9 @@ jobs: shell: bash run: | set -e - pip install example_python_package_with_rust_backend --find-links dist --force-reinstall + python3 -m venv .venv + source .venv/Scripts/activate + pip install fusion_neutron_utils --find-links dist --force-reinstall pip install pytest pytest @@ -119,7 +182,7 @@ jobs: strategy: matrix: platform: - - runner: macos-latest + - runner: macos-12 target: x86_64 - runner: macos-14 target: aarch64 @@ -127,7 +190,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 with: @@ -140,11 +203,11 @@ jobs: name: wheels-macos-${{ matrix.platform.target }} path: dist - name: pytest - if: ${{ !startsWith(matrix.platform.target, 'aarch64') }} - shell: bash run: | set -e - pip install example_python_package_with_rust_backend --find-links dist --force-reinstall + python3 -m venv .venv + source .venv/bin/activate + pip install fusion_neutron_utils --find-links dist --force-reinstall pip install pytest pytest @@ -166,12 +229,26 @@ jobs: release: name: Release runs-on: ubuntu-latest - if: "startsWith(github.ref, 'refs/tags/')" - needs: [linux, windows, macos, sdist] + if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} + needs: [linux, musllinux, windows, 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@v4 + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-path: 'wheels-*/*' - name: Publish to PyPI + if: "startsWith(github.ref, 'refs/tags/')" uses: PyO3/maturin-action@v1 + env: + MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --non-interactive --skip-existing wheels-*/*