From 7b2871a0a9ffb6ddd7e4b8e5afdaeb942f1d2575 Mon Sep 17 00:00:00 2001 From: Radu Marias Date: Sat, 1 Jun 2024 14:03:08 +0300 Subject: [PATCH] Update CI.yml --- .github/workflows/CI.yml | 264 ++++++++++++++------------------------- 1 file changed, 91 insertions(+), 173 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c617663..853b1c0 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,213 +1,131 @@ -name: Python +# This file is autogenerated by maturin v1.5.1 +# To update, run +# +# maturin generate-ci github +# +name: CI on: push: + branches: + - main + - master + tags: + - '*' pull_request: + workflow_dispatch: + +permissions: + contents: read jobs: - macos: - runs-on: macos-latest + linux: + 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 + # - runner: ubuntu-latest + # target: s390x + # - runner: ubuntu-latest + # target: ppc64le steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: - python-version: 3.9 - architecture: x64 - - uses: dtolnay/rust-toolchain@stable - - name: Build wheels - x86_64 - uses: PyO3/maturin-action@v1 - with: - target: x86_64 - args: --release --out dist --sdist -m python/Cargo.toml - - name: Install built wheel - x86_64 - run: | - pip install crfs --no-index --find-links dist --force-reinstall - python -c "import crfs" - - name: Build wheels - universal2 + python-version: '3.10' + - name: Build wheels uses: PyO3/maturin-action@v1 with: - target: universal2-apple-darwin - args: --release --out dist -m python/Cargo.toml - - name: Install built wheel - universal2 - run: | - pip install crfs --no-index --find-links dist --force-reinstall - python -c "import crfs" + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + sccache: 'true' + manylinux: auto - name: Upload wheels - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: wheels + name: wheels-linux-${{ matrix.platform.target }} path: dist windows: - runs-on: windows-latest + runs-on: ${{ matrix.platform.runner }} strategy: matrix: - target: [x64, x86] + platform: + - runner: windows-latest + target: x64 + - runner: windows-latest + target: x86 steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: - python-version: 3.9 - architecture: ${{ matrix.target }} - - uses: dtolnay/rust-toolchain@stable + python-version: '3.10' + architecture: ${{ matrix.platform.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: - target: ${{ matrix.target }} - args: --release --out dist -m python/Cargo.toml - - name: Install built wheel - run: | - pip install crfs --no-index --find-links dist --force-reinstall - python -c "import crfs" + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + sccache: 'true' - name: Upload wheels - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: - name: wheels + name: wheels-windows-${{ matrix.platform.target }} path: dist - linux: - runs-on: ubuntu-latest - strategy: - matrix: - target: [x86_64, i686] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.9 - architecture: x64 - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - manylinux: auto - args: --release --out dist -m python/Cargo.toml - - name: Install built wheel - if: matrix.target == 'x86_64' - run: | - pip install crfs --no-index --find-links dist --force-reinstall - python -c "import crfs" - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: dist - - linux-cross: - runs-on: ubuntu-latest - strategy: - matrix: - target: [aarch64, armv7, s390x, ppc64le, ppc64] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - manylinux: auto - args: --release --out dist -m python/Cargo.toml - - uses: uraimo/run-on-arch-action@v2.7.2 - if: matrix.target != 'ppc64' - name: Install built wheel - with: - arch: ${{ matrix.target }} - distro: ubuntu20.04 - githubToken: ${{ github.token }} - install: | - apt-get update - apt-get install -y --no-install-recommends python3 python3-pip - pip3 install -U pip - run: | - pip3 install crfs --no-index --find-links dist/ --force-reinstall - python3 -c "import crfs" - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: dist - - musllinux: - runs-on: ubuntu-latest + macos: + runs-on: ${{ matrix.platform.runner }} strategy: matrix: - target: - - x86_64-unknown-linux-musl - - i686-unknown-linux-musl + platform: + - runner: macos-latest + target: x86_64 + - runner: macos-14 + target: aarch64 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.9 - architecture: x64 - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.target }} - manylinux: musllinux_1_2 - args: --release --out dist -m python/Cargo.toml - - name: Install built wheel - if: matrix.target == 'x86_64-unknown-linux-musl' - uses: addnab/docker-run-action@v3 - with: - image: alpine:latest - options: -v ${{ github.workspace }}:/io -w /io - run: | - apk add py3-pip - pip3 install -U pip - pip3 install crfs --no-index --find-links /io/dist/ --force-reinstall - python3 -c "import crfs" - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: dist + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + sccache: 'true' + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-macos-${{ matrix.platform.target }} + path: dist - musllinux-cross: + sdist: runs-on: ubuntu-latest - strategy: - matrix: - platform: - - target: aarch64-unknown-linux-musl - arch: aarch64 - - target: armv7-unknown-linux-musleabihf - arch: armv7 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - manylinux: musllinux_1_2 - args: --release --out dist -m python/Cargo.toml - - uses: uraimo/run-on-arch-action@v2.7.2 - name: Install built wheel - with: - arch: ${{ matrix.platform.arch }} - distro: alpine_latest - githubToken: ${{ github.token }} - install: | - apk add py3-pip - pip3 install -U pip - run: | - pip3 install crfs --no-index --find-links dist/ --force-reinstall - python3 -c "import crfs" - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: dist - + - uses: actions/checkout@v4 + - name: Build sdist + uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --out dist + - name: Upload sdist + uses: actions/upload-artifact@v4 + with: + name: wheels-sdist + path: dist release: name: Release runs-on: ubuntu-latest if: "startsWith(github.ref, 'refs/tags/')" - needs: [ macos, windows, linux, linux-cross, musllinux, musllinux-cross ] + needs: [linux, windows, macos, sdist] steps: - uses: actions/download-artifact@v3 with: @@ -218,7 +136,7 @@ jobs: - name: Publish to PyPI env: TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.MATURIN_PYPI_TOKEN }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | pip install --upgrade twine twine upload --skip-existing *