Skip to content

Commit c4bb3f4

Browse files
Split build and publish environments for PyPI releases via GitHub Actions
1 parent a3596bd commit c4bb3f4

1 file changed

Lines changed: 30 additions & 14 deletions

File tree

.github/workflows/release.yml

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,12 @@ on:
55
tags:
66
- "v*"
77
jobs:
8-
deploy:
9-
name: Release
10-
8+
build:
9+
name: Build Distributions
1110
runs-on: ubuntu-latest
12-
environment: release
13-
permissions:
14-
id-token: write # Needed for trusted publishing
11+
1512
steps:
16-
- name: Checkout code
17-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
13+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
1814
with:
1915
persist-credentials: false
2016

@@ -24,12 +20,32 @@ jobs:
2420
version: "latest"
2521
enable-cache: false
2622

27-
- name: "Set up Python"
28-
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
23+
- name: Build distributions
24+
run: uv build
25+
26+
- name: Upload distributions
27+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
28+
with:
29+
name: dists
30+
path: dist/
31+
if-no-files-found: error
32+
33+
publish:
34+
name: Publish
35+
runs-on: ubuntu-latest
36+
permissions:
37+
id-token: write # for Trusted Publishing
38+
needs: build
39+
40+
environment: release
41+
42+
steps:
43+
- name: Download distributions
44+
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
2945
with:
30-
python-version: 3.12
46+
name: dists
47+
path: dist/
3148

32-
- name: Release
49+
- name: Publish
3350
run: |
34-
uv build
35-
uv publish --trusted-publishing always
51+
uv publish --trusted-publishing always dist/*

0 commit comments

Comments
 (0)