Skip to content

Commit

Permalink
ci: avoid duplication on release
Browse files Browse the repository at this point in the history
  • Loading branch information
mkniewallner committed Jul 20, 2024
1 parent 6e20d6e commit 6259a05
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 192 deletions.
80 changes: 0 additions & 80 deletions .github/workflows/main.yml

This file was deleted.

165 changes: 53 additions & 112 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,106 +1,51 @@
name: Release

on:
release:
types: [published]
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
set-version:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- name: Export tag
id: vars
run: echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT
# - name: Export tag
# id: vars
# run: echo tag=${GITHUB_REF#refs/*/} >> $GITHUB_OUTPUT

- name: Update project version
run: |
sed -i "s/^version = \".*\"/version = \"$RELEASE_VERSION\"/" pyproject.toml
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
RELEASE_VERSION: 1.2.3

- name: Upload updated pyproject.toml
uses: actions/upload-artifact@v4
with:
name: pyproject-toml
path: pyproject.toml

linux:
runs-on: ubuntu-22.04
needs: [set-version]
build-wheel:
strategy:
matrix:
os:
- name: linux
image: ubuntu-22.04
- name: macos
image: macos-14
- name: windows
image: windows-2022
target: [x86_64, aarch64]
python: ['3.12', 'pypy3.10']
steps:
- name: Check out
uses: actions/checkout@v4

- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml

- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter ${{ startsWith(matrix.python, 'pypy') && matrix.python || format('python{0}', matrix.python) }}
sccache: 'true'
manylinux: auto

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}-${{ matrix.python }}
path: dist

windows:
runs-on: windows-2022
needs: [set-version]
strategy:
matrix:
target: [x64]
python: ['3.12', 'pypy3.10']
steps:
- name: Check out
uses: actions/checkout@v4

- name: Download updated pyproject.toml
uses: actions/download-artifact@v4
with:
name: pyproject-toml

- uses: actions/setup-python@v5
id: setup-python
with:
python-version: ${{ matrix.python }}

- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter ${{ steps.setup-python.outputs.python-path }}
sccache: 'true'

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}-${{ matrix.python }}
path: dist

macos:
runs-on: macos-14
fail-fast: false
runs-on: ${{ matrix.os.image }}
name: Build wheel for ${{ matrix.os.name }} ${{ matrix.target }} (${{ matrix.python }})
needs: [set-version]
strategy:
matrix:
target: [x86_64, aarch64]
python: ['3.12', 'pypy3.10']
steps:
- name: Check out
uses: actions/checkout@v4
Expand All @@ -110,25 +55,20 @@ jobs:
with:
name: pyproject-toml

- uses: actions/setup-python@v5
id: setup-python
with:
python-version: ${{ matrix.python }}

- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --interpreter ${{ steps.setup-python.outputs.python-path }}
args: --release --out dist --interpreter ${{ matrix.python }}
sccache: 'true'
manylinux: auto

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}-${{ matrix.python }}
path: dist

sdist:
build-sdist:
runs-on: ubuntu-22.04
needs: [set-version]
steps:
Expand All @@ -148,33 +88,34 @@ jobs:
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
name: artifact-sdist
path: dist

publish:
name: Publish
runs-on: ubuntu-22.04
needs: [linux, windows, macos, sdist]
steps:
- uses: actions/download-artifact@v4

- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*

check-docs:
runs-on: ubuntu-22.04
needs: publish
steps:
- name: Check out
uses: actions/checkout@v4

- name: Set up the environment
uses: ./.github/actions/setup-env

- name: Deploy documentation
run: pdm run mkdocs gh-deploy --force
# publish:
# name: Publish
# runs-on: ubuntu-22.04
# needs: [build-wheel, build-sdist]
# steps:
# - uses: actions/download-artifact@v4
# path: dist
#
# - name: Publish to PyPI
# uses: PyO3/maturin-action@v1
# env:
# MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
# with:
# command: upload
# args: --non-interactive --skip-existing dist

# check-docs:
# runs-on: ubuntu-22.04
# needs: publish
# steps:
# - name: Check out
# uses: actions/checkout@v4
#
# - name: Set up the environment
# uses: ./.github/actions/setup-env
#
# - name: Deploy documentation
# run: pdm run mkdocs gh-deploy --force

0 comments on commit 6259a05

Please sign in to comment.