在 github 操作中运行时不会发生 Python 自动版本控制

标签 python setuptools pypi github-actions python-3.8

成功构建后,我试图将包从 CI 直接推送到 pypi。
我尝试了几个工具,比如“setuptools-scm”,一切正常,我根据我的标签自动更改版本,如 package-0.0.2.post11-py3-none-any.whl在我本地。
当我将相同的代码作为 github 操作的一部分(命令 Run python3 setup.py sdist bdist_wheel)推送时,我没有看到版本得到更新,我总是得到 package-0.0.0-py3-none-any.whl下面是 setup.py 的片段

setuptools.setup(
    name="package",
    use_scm_version=True,
    setup_requires=['setuptools_scm']
yml文件:
 publish:
    name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - name: Install scm version
      run: >-
        python -m
        pip install
        setuptools-scm==4.1.2        
    - name: Install wheel
      run: >-
        python -m
        pip install
        wheel==0.34.2
    - name: Build a binary wheel and a source tarball
      run: >-
        python3 setup.py sdist bdist_wheel
    - name: Publish distribution 📦 to Test PyPI
      uses: pypa/gh-action-pypi-publish@master
      with:
        password: ${{ secrets.test_pypi_password }}
        repository_url: https://test.pypi.org/legacy/
    - name: Publish distribution 📦 to PyPI
      if: startsWith(github.ref, 'refs/tags')
      uses: pypa/gh-action-pypi-publish@master
      with:
        password: ${{ secrets.pypi_password }}
pyproject.toml
# pyproject.toml
[build-system]
requires = ["setuptools>=42", "wheel", "setuptools_scm[toml]>=3.4"]
[tool.setuptools_scm]
write_to = "pkg/version.py"
我不清楚我在这里做错了什么,有人可以帮助解决这个问题吗?
谢谢

最佳答案

行动- uses: actions/checkout@v2结帐时未提取标签。必须另外添加以下行以从 git 中获取标签

publish:
    name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: Fetch all history for all tags and branches
      run: git fetch --prune --unshallow
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - name: Install scm version
      run: >-
        python -m
        pip install
        versiontag      
    - name: Install wheel
      run: >-
        python -m
        pip install
        wheel==0.34.2

关于在 github 操作中运行时不会发生 Python 自动版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62968271/

相关文章:

python - 从另一个文件调用函数以在模板中使用

python - 实用Python项目的Setup.py

python - 如何在 setup.py 中执行(安全的)bash shell 命令?

来自pypi的python模块没有安装?

python - pep381client(pep381run) 不会从官方 pypi 服务器下载包

python - 在 pip 安装期间检查包的哈希值

python - 如何有条件地将值分配给列?

python - 删除一个数据框中同时也在另一个数据框中的所有行的最快/最Python式的方法是什么?

python - 如何使用 eyes3 和 python2.7 从 mp3 文件访问发布日期或年份

python-3.x - pkg_resources.resource_filename 未提取文件