Я пытался отправить пакет из 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']

Ymlfile:

 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"

Я не понимаю, что я здесь делаю не так. Может ли кто-нибудь помочь исправить это?

Благодарность

4
kbk 18 Июл 2020 в 14:57

1 ответ

Лучший ответ

Действие - 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
2
kbk 19 Июл 2020 в 10:54