当前位置:   article > 正文

使用Github Action发布python包到pypi.org_github python项目发版

github python项目发版

一、pypi中创建token

1. 浏览器中打开这个网址Log in · PyPI

输入Token name,选择一个Scope,然后点击Create token

创建成功后,进入到如下页面:

点进Copy token,然后在新的标签页打开github

二、配置token到GitHub

1. 登录Github后,进入要配置的代码仓,点击Settings

 进入新页面后,点击左侧的Secrets and variables,点击子菜单中的Actions

在跳转后的新页面里,点击右下角的New  repository secrets

 进入新页面后,Secret下方粘贴刚才从pypi中复制的token,Name下方输入PYPI_API_TOKEN

点击下方的绿色按钮Add secret,添加成功后Repository secrets栏目下方就会列出这个token了

 三、创建挂载Github Action的自动化发布脚本

在代码仓的.github/workflows/目录下(如果没该目录,就手动创建一下),添加publish.yml文件,内容如下:

  1. name: Publish
  2. on:
  3. push:
  4. tags:
  5. - '*'
  6. jobs:
  7. publish:
  8. runs-on: ubuntu-latest
  9. strategy:
  10. matrix:
  11. package:
  12. - fast-dev-cli
  13. - fastdevcli-slim
  14. permissions:
  15. id-token: write
  16. steps:
  17. - name: Dump GitHub context
  18. env:
  19. GITHUB_CONTEXT: ${{ toJson(github) }}
  20. run: echo "$GITHUB_CONTEXT"
  21. - uses: actions/checkout@v4
  22. - name: Set up Python
  23. uses: actions/setup-python@v5
  24. with:
  25. python-version: '3.10'
  26. - name: Install dependencies
  27. run: |
  28. python -m pip install --upgrade pip
  29. pip install build
  30. - name: Build package
  31. env:
  32. BUILD_PACKAGE: ${{ matrix.package }}
  33. run: python -m build
  34. - name: Publish package
  35. uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
  36. with:
  37. user: __token__
  38. password: ${{ secrets.PYPI_API_TOKEN }}
  39. - name: Dump GitHub context
  40. env:
  41. GITHUB_CONTEXT: ${{ toJson(github) }}
  42. run: echo "$GITHUB_CONTEXT"

文件主要参考了https://github.com/tiangolo/fastapi/blob/master/.github/workflows/publish.yml

 把其中的package改成了我的,触发构建的钩子也由release改成tag

注:该自动化发布脚本会一次性发布两个Python包,如果只想发布一个包,可以参考这个:tortoise-orm/.github/workflows/pypi.yml at main · tortoise/tortoise-orm · GitHub

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/695678
推荐阅读
相关标签
  

闽ICP备14008679号