Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: Refactor; build releases #8

Merged
merged 17 commits into from
Sep 9, 2024
Merged

ci: Refactor; build releases #8

merged 17 commits into from
Sep 9, 2024

Conversation

bryant-finney
Copy link
Collaborator

No description provided.

@bryant-finney bryant-finney self-assigned this Sep 7, 2024
@bryant-finney bryant-finney added enhancement New feature or request github_actions Pull requests that update GitHub Actions code labels Sep 7, 2024
@bryant-finney bryant-finney marked this pull request as ready for review September 7, 2024 17:04
this update is based on the output of `maturin generate-ci github`:

  ```yaml
  # This file is autogenerated by maturin v1.7.1
  # To update, run
  #
  #    maturin generate-ci github
  #
  name: CI

  on:
  push:
      branches:
      - main
      - master
      tags:
      - '*'
  pull_request:
  workflow_dispatch:

  permissions:
  contents: read

  jobs:
  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@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: auto
      - name: Upload wheels
          uses: actions/upload-artifact@v4
          with:
          name: wheels-linux-${{ matrix.platform.target }}
          path: dist

  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

  windows:
      runs-on: ${{ matrix.platform.runner }}
      strategy:
      matrix:
          platform:
          - runner: windows-latest
              target: x64
          - runner: windows-latest
              target: x86
      steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
          with:
          python-version: 3.x
          architecture: ${{ matrix.platform.target }}
      - 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-windows-${{ matrix.platform.target }}
          path: dist

  macos:
      runs-on: ${{ matrix.platform.runner }}
      strategy:
      matrix:
          platform:
          - runner: macos-12
              target: x86_64
          - runner: macos-14
              target: aarch64
      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'
      - name: Upload wheels
          uses: actions/upload-artifact@v4
          with:
          name: wheels-macos-${{ matrix.platform.target }}
          path: dist

  sdist:
      runs-on: ubuntu-latest
      steps:
      - 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: [linux, musllinux, windows, macos, sdist]
      steps:
      - uses: actions/download-artifact@v4
      - name: Publish to PyPI
          uses: PyO3/maturin-action@v1
          env:
          MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
          with:
          command: upload
          args: --non-interactive --skip-existing wheels-*/*
  ```

Signed-off-by: Bryant Finney <[email protected]>
Signed-off-by: Bryant Finney <[email protected]>
Signed-off-by: Bryant Finney <[email protected]>
now, a new `poe` task writes the `.pth` file when `cargo` is not
    installed for `maturin` to utilize (such as when `pdoc` is
    building the documentation suite)

Signed-off-by: Bryant Finney <[email protected]>
Signed-off-by: Bryant Finney <[email protected]>
the documentation job wasn't setting up dynamic versioning, and sdist
    was using a shallow clone

at some point, I'll want to replace the shell tasks with Python ones

Signed-off-by: Bryant Finney <[email protected]>
and specify the correct name of the `cargo` docs

Signed-off-by: Bryant Finney <[email protected]>
@bryant-finney bryant-finney merged commit cb1332d into main Sep 9, 2024
4 of 34 checks passed
@bryant-finney bryant-finney deleted the ci/refactor branch September 9, 2024 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request github_actions Pull requests that update GitHub Actions code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant