From 10296deb0c6a9d666381506c19d19f9603e6906f Mon Sep 17 00:00:00 2001 From: Mathieu Kniewallner Date: Fri, 19 Jul 2024 22:25:31 +0200 Subject: [PATCH 1/3] ci: avoid duplication on release --- .github/workflows/main.yml | 81 ----------------- .github/workflows/release.yml | 166 +++++++++++----------------------- 2 files changed, 54 insertions(+), 193 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 4ea0eb33..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: CI - -on: - pull_request: - types: [opened, synchronize, reopened] - push: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} - -jobs: - quality: - runs-on: ubuntu-22.04 - steps: - - name: Check out - uses: actions/checkout@v4 - - - name: Set up the environment - uses: ./.github/actions/setup-env - - - name: Run pre-commit - run: | - rustup component add rustfmt - pdm run pre-commit run -a --show-diff-on-failure - - - name: Inspect dependencies with deptry - run: | - pdm run deptry python - - tests: - strategy: - matrix: - os: - - name: linux - image: ubuntu-22.04 - - name: macos - image: macos-14 - - name: windows - image: windows-2022 - python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.10'] - fail-fast: false - runs-on: ${{ matrix.os.image }} - name: ${{ matrix.os.name }} (${{ matrix.python-version }}) - steps: - - name: Check out - uses: actions/checkout@v4 - - - name: Set up the environment - uses: ./.github/actions/setup-env - with: - python-version: ${{ matrix.python-version }} - - - name: Check typing - run: pdm run mypy - if: ${{ matrix.os.name == 'linux' }} - - - name: Run unit tests - run: pdm run pytest tests/unit --cov --cov-config=pyproject.toml --cov-report=xml - - - name: Run functional tests - run: pdm run pytest tests/functional -n auto --dist loadgroup - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v4 - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - if: ${{ matrix.os.name == 'linux' && matrix.python-version == '3.12' }} - - check-docs: - runs-on: ubuntu-22.04 - steps: - - name: Check out - uses: actions/checkout@v4 - - - name: Set up the environment - uses: ./.github/actions/setup-env - - - name: Check if documentation can be built - run: pdm run mkdocs build -s diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ff9811a6..9e62ca0f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,12 @@ 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: @@ -10,15 +14,15 @@ jobs: 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 @@ -26,81 +30,22 @@ jobs: 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 @@ -110,25 +55,21 @@ 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 }} + name: artifact-wheel-${{ matrix.os.name }}-${{ matrix.target }}-${{ matrix.python }} path: dist - sdist: + build-sdist: runs-on: ubuntu-22.04 needs: [set-version] steps: @@ -148,33 +89,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 artifact-*/* + +# 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 From b62a84dae38c4260527706960369b80385ddb5fc Mon Sep 17 00:00:00 2001 From: Mathieu Kniewallner Date: Sat, 20 Jul 2024 10:47:45 +0200 Subject: [PATCH 2/3] foo --- .github/workflows/release.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e62ca0f..8a610ffc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,12 @@ jobs: with: name: pyproject-toml - - name: Build wheels + - uses: actions/setup-python@v5 + id: setup-python + with: + python-version: ${{ matrix.python }} + + - name: Build wheel uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} @@ -63,7 +68,7 @@ jobs: sccache: 'true' manylinux: auto - - name: Upload wheels + - name: Upload wheel uses: actions/upload-artifact@v4 with: name: artifact-wheel-${{ matrix.os.name }}-${{ matrix.target }}-${{ matrix.python }} From 1a00c196f94b7c39e43d12da5959e49a355a8ea1 Mon Sep 17 00:00:00 2001 From: Mathieu Kniewallner Date: Sat, 20 Jul 2024 10:56:27 +0200 Subject: [PATCH 3/3] foo --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8a610ffc..9d25785d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,7 +64,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} - args: --release --out dist --interpreter ${{ matrix.python }} + args: --release --out dist --interpreter ${{ steps.setup-python.outputs.python-path }} sccache: 'true' manylinux: auto