1. 前言
本文中,我们学习在GitHub Actions中实现PyPI发版。
具体来说,就是在GitHub Actions中实现打包Python软件包,并且上传软件包到 pypi.org 站点。
相关文档:
2. GitHub Secret配置
GitHub 项目仓库中,添加一个名为 PYPI_API_TOKEN
的 secret ,它的值是从 pypi.org 获取到的API TOKEN。
这个secret,使得 workflow 有权限向 pypi.org 上传Python软件包。
3. GitHub Actions
新建一个workflow,例如 .github/workflows/build-package.yaml
内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| name: Build and upload python package
on: release: types: [created]
jobs: deploy: runs-on: ubuntu-latest
steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' cache: 'pip' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install -e. pip install setuptools wheel twine - name: Set package version run: | export VERSION="${GITHUB_REF#refs/tags/v}" sed -i "s/version=.*/version=\"${VERSION}\",/" setup.py - name: Build and publish env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} run: | python setup.py bdist_wheel sdist twine upload dist/*
|
4. 使用方法示例
1、打tag
1 2
| git tag v0.6.4 git push origin v0.6.4
|
2、github发版
github项目页面,点击左侧的 Releases
,点击Draft a new release
选择tag,Release title
输入版本号 v0.6.4
,点击 Publish release
3、pypi自动发版
github发版后,会触发 workflow ,自动打包并发版到 pypi.org