如果版本已存在,则无法将 python 包上传到 artifactory
Fail uploading python package to artifactory if version already exists
我有一个 Github 包的 python 存储库,只要对 main 进行了更改,github-actions 就会将包推送到 artifactory。我想在 github-actions 中添加一些东西,如果版本号已经存在,则不会将包发布到 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 是构建用于上传到 artifactory 的 .pypirc 和 pip.conf 文件的秘密,pip.conf 用于将 pip 安装指向存储库以从中提取包。
如果 setup.py 的版本已在 artifactory 中可用,则尝试在此处添加一些会导致构建失败的内容。是否可以通过 github 工作流程来完成?
有两种方法可以做到这一点:
配置用于上传到 的 Artifactory 帐户没有 delete/overwrite 权限(您可以在此处阅读有关权限如何工作的更多信息:Artifactory Docs - Permissions.
然后在您的 GitHub 操作中,它会在尝试上传时收到错误,这符合您的要求。
如果有兴趣,您可以进一步研究 Artifactory Docs - Access Tokens 作为一种方法,您可以在其中为特定存储库创建具有特定权限的令牌。
编写一个脚本,通过 Artifactory API 检查该版本是否存在,如果不存在,则上传。您可以使用此端点 Artifactory API Docs - File Info 来获取此信息。
如果您没有能力执行上述操作,我只会采用这种方法,因为上述方法就是 simpler/better 方法。
告诉我们你的进展!
我有一个 Github 包的 python 存储库,只要对 main 进行了更改,github-actions 就会将包推送到 artifactory。我想在 github-actions 中添加一些东西,如果版本号已经存在,则不会将包发布到 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 是构建用于上传到 artifactory 的 .pypirc 和 pip.conf 文件的秘密,pip.conf 用于将 pip 安装指向存储库以从中提取包。
如果 setup.py 的版本已在 artifactory 中可用,则尝试在此处添加一些会导致构建失败的内容。是否可以通过 github 工作流程来完成?
有两种方法可以做到这一点:
配置用于上传到 的 Artifactory 帐户没有 delete/overwrite 权限(您可以在此处阅读有关权限如何工作的更多信息:Artifactory Docs - Permissions.
然后在您的 GitHub 操作中,它会在尝试上传时收到错误,这符合您的要求。
如果有兴趣,您可以进一步研究 Artifactory Docs - Access Tokens 作为一种方法,您可以在其中为特定存储库创建具有特定权限的令牌。
编写一个脚本,通过 Artifactory API 检查该版本是否存在,如果不存在,则上传。您可以使用此端点 Artifactory API Docs - File Info 来获取此信息。
如果您没有能力执行上述操作,我只会采用这种方法,因为上述方法就是 simpler/better 方法。
告诉我们你的进展!