如果版本已经存在,则无法将python包上载到artifactory



我有一个python包的Github存储库,只要对main进行了更改,Github操作就会将包推送到artifactory。我想在github操作中添加一些内容,如果版本号已经存在,则不会将包发布到artifactory。

github操作代码看起来像:

- name: Deploying Package
env:
PYRC: ${{ secrets.DI_PYPIRC }}
PYCONF: ${{ secrets.DI_PY_PIP_CONF }}
run: |
echo "$PYRC" >> ~/.pypirc
ls -a
python setup.py sdist bdist_wheel upload -r local

PYRC和PYCONF是构建.pypirc和pip.conf文件的秘密,这些文件用于上传到artifactory,pip.conf用于将pip安装指向要从中提取包的存储库。

如果setup.py的版本已经在artifactory中可用,则尝试在此处添加一些会导致构建失败的内容。有可能通过github工作流来完成吗?

有两种方法可以做到这一点:

  1. 配置用于上传到的Artifactory帐户没有删除/覆盖权限(您可以在此处阅读有关权限如何工作的更多信息:Artifactory Docs-permissions.

    在你的GitHub操作中,它在尝试上传时会收到一个错误,这符合你的要求。

    如果你感兴趣,你可以更多地研究Artifactory Docs-Access Tokens作为一种方法,在那里你可以为特定的存储库创建一个具有特定权限的令牌。

  2. 编写一个脚本,通过Artifactory API检查该版本是否存在,如果不存在,则上传。您可以使用这个端点Artifactory API Docs-File Info来获取这些信息。

    只有当你没有能力做到以上几点时,我才会采用这种方法,因为以上方法会更简单/更好。

让我们知道你的进展!

最新更新