Skip to content

Commit 3944dba

Browse files
committed
new publishing workflow
1 parent e852691 commit 3944dba

File tree

1 file changed

+65
-24
lines changed

1 file changed

+65
-24
lines changed

.github/workflows/publish.yml

Lines changed: 65 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,82 @@
1-
# This workflow will upload a Python Package using Twine when a release is created
2-
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
3-
4-
# This workflow uses actions that are not certified by GitHub.
5-
# They are provided by a third-party and are governed by
6-
# separate terms of service, privacy policy, and support
7-
# documentation.
8-
9-
name: Upload Python Package
1+
name: Release
102

113
on:
124
release:
135
types: [published]
6+
push:
7+
tags:
8+
- '*.*.*'
9+
10+
env:
11+
# Change these for your project's URLs
12+
PYPI_URL: https://pypi.org/p/django-tasks-scheduler
13+
PYPI_TEST_URL: https://test.pypi.org/p/django-tasks-scheduler
1414

1515
jobs:
16-
publish:
16+
17+
build:
18+
name: Build distribution 📦
1719
runs-on: ubuntu-latest
18-
permissions:
19-
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
2020

2121
steps:
2222
- uses: actions/checkout@v4
23-
2423
- name: Set up Python
2524
uses: actions/setup-python@v5
2625
with:
27-
python-version: '3.12'
28-
cache-dependency-path: poetry.lock
26+
python-version: "3.12"
27+
- name: Install pypa/build
28+
run:
29+
python3 -m pip install build --user
30+
- name: Build a binary wheel and a source tarball
31+
run: python3 -m build
32+
- name: Store the distribution packages
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: python-package-distributions
36+
path: dist/
2937

30-
- name: Install dependencies
31-
run: |
32-
python -m pip install --upgrade pip
33-
pip install build
38+
publish-to-pypi:
39+
name: >-
40+
Publish Python 🐍 distribution 📦 to PyPI
41+
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
42+
needs:
43+
- build
44+
runs-on: ubuntu-latest
45+
environment:
46+
name: pypi
47+
url: ${{ env.PYPI_URL }}
48+
permissions:
49+
id-token: write # IMPORTANT: mandatory for trusted publishing
50+
steps:
51+
- name: Download all the dists
52+
uses: actions/download-artifact@v4
53+
with:
54+
name: python-package-distributions
55+
path: dist/
56+
- name: Publish distribution 📦 to PyPI
57+
uses: pypa/gh-action-pypi-publish@release/v1
58+
59+
publish-to-testpypi:
60+
name: Publish Python 🐍 distribution 📦 to TestPyPI
61+
needs:
62+
- build
63+
runs-on: ubuntu-latest
3464

35-
- name: Build package
36-
run: python -m build
65+
environment:
66+
name: testpypi
67+
url: ${{ env.PYPI_TEST_URL }}
3768

38-
- name: Publish package to pypi
39-
uses: pypa/[email protected]
69+
permissions:
70+
id-token: write # IMPORTANT: mandatory for trusted publishing
71+
72+
steps:
73+
- name: Download all the dists
74+
uses: actions/download-artifact@v4
75+
with:
76+
name: python-package-distributions
77+
path: dist/
78+
- name: Publish distribution 📦 to TestPyPI
79+
uses: pypa/gh-action-pypi-publish@release/v1
4080
with:
41-
print-hash: true
81+
repository-url: https://test.pypi.org/legacy/
82+
skip-existing: true

0 commit comments

Comments
 (0)