chore: fix CI attempting to publish version behind latest release #29
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub action for CI: build and semantic release | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Cache uv | |
id: cache-uv | |
uses: actions/cache@v3 | |
with: | |
path: ~/.local/bin/uv | |
key: ${{ runner.os }}-uv | |
- name: Install uv (if not cached) | |
if: steps.cache-uv.outputs.cache-hit != 'true' | |
run: | | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Build | |
run: | | |
uv build | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
concurrency: release | |
permissions: | |
id-token: write | |
contents: write | |
outputs: | |
released: ${{ steps.semantic_release.outputs.released }} | |
tag: ${{ steps.semantic_release.outputs.tag }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Python semantic release | |
id: semantic_release | |
uses: python-semantic-release/[email protected] | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
vcs_release: true | |
publish: | |
runs-on: ubuntu-latest | |
needs: [build, release] | |
if: needs.release.outputs.released == 'true' | |
concurrency: publish | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.release.outputs.tag }} | |
- name: Restore uv from cache | |
id: cache-uv | |
uses: actions/cache@v3 | |
with: | |
path: ~/.local/bin/uv | |
key: ${{ runner.os }}-uv | |
- name: Install uv (if not cached) | |
if: steps.cache-uv.outputs.cache-hit != 'true' | |
run: | | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Build package | |
run: | | |
uv build | |
- name: Publish package | |
run: | | |
uv publish --token ${{ secrets.PYPI_TOKEN }} |