GitLab CI bump Python包版本
我想知道是否有可能在gitlab ci runner中升级存储在gitlab中的Python包版本 我有一个示例包结构:GitLab CI bump Python包版本,python,python-3.x,gitlab,gitlab-ci,Python,Python 3.x,Gitlab,Gitlab Ci,我想知道是否有可能在gitlab ci runner中升级存储在gitlab中的Python包版本 我有一个示例包结构: /package /src /__init__.py main.py setup.py Dockerfile .gitlab-ci.yml init.py包括: __version__ = '1.0.0' setup( name='foo', version=src.__version__,
/package
/src
/__init__.py
main.py
setup.py
Dockerfile
.gitlab-ci.yml
init.py包括:
__version__ = '1.0.0'
setup(
name='foo',
version=src.__version__,
packages=find_packages(),
install_required=[foo, bar]
)
setup.py包括:
__version__ = '1.0.0'
setup(
name='foo',
version=src.__version__,
packages=find_packages(),
install_required=[foo, bar]
)
用于碰撞和释放的简单工作流如下所示:
但是,当直接在gitlab ci中发布时,我们是否可以自动在uu init_uuu.py中增加版本 我喜欢为此使用bump2version包 这是我的gitlab-ci.yml,具有(几乎)最低限度的设置:
image:python:latest
#将pip的缓存目录更改为在项目目录中,因为我们可以
#仅缓存本地项。
变量:
PIP\u CACHE\u DIR:$CI\u PROJECT\u DIR/.CACHE/PIP
#Pip的缓存不存储python包
# https://pip.pypa.io/en/stable/reference/pip_install/#caching
#
#如果还希望缓存已安装的软件包,则必须安装
#将它们放入virtualenv中,并将其缓存。
隐藏物:
路径:
-.cache/pip
-文夫/
在脚本之前:
-python——版本
-pip安装virtualenv
-虚拟的
-源venv/bin/激活
-pip安装-r requirements.txt
阶段:
-建造
-释放
上载包:
阶段:发布
脚本:
-pip安装绳线缓冲器2型
-bump2version—标记释放
-python setup.py sdist bdist_wheel
-TWINE\u PASSWORD=${PYPI\u TOKEN}TWINE\u USERNAME=\uuuuuu TOKEN\uuuuuupython-m TWINE上载--存储库urlhttps://upload.pypi.org/legacy/ 距离/*
#避免错误损坏setup.py中的版本所必需的。以防忘记手动操作。现在,我们只需要显式地为主要的或次要的版本。
-bump2version修补程序
-git config--global user.email“${GITLAB\u user\u email}”
-git config--全局user.name“${GITLAB\u user\u name}”
-git远程设置url源”https://gitlab-ci-token:${MY_PUSH_TOKEN}@gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git“
-git push-o ci.skip--标记源头:${ci\u COMMIT\u REF\u NAME}
人工产品:
路径:
-dist/*.whl
仅:
-主人
我的项目根目录中还有一个.bumpversion.cfg
文件,其中包含以下内容:
[bumpversion]
commit = True
tag = False
current_version = 0.1.0-dev0
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>[a-z]+)(?P<build>\d+))?
serialize =
{major}.{minor}.{patch}-{release}{build}
{major}.{minor}.{patch}
[bumpversion:file:setup.py]
[bumpversion:part:build]
[bumpversion:part:release]
optional_value = gamma
values =
dev
gamma
[bumpversion]
提交=真
tag=False
当前_版本=0.1.0-dev0
解析=(?P\d+)\(?P\d+)\(?P\d+)(\-(?P[a-z]+)(?P\d+)?
序列化=
{major}.{minor}.{patch}-{release}{build}
{大调}.{小调}.{patch}
[版本:文件:setup.py]
[版本:部分:构建]
[版本:部分:发布]
可选_值=伽马
值=
发展
伽马射线
使用两个自定义变量。需要将它们添加到repo设置中的CI变量中。如果要在非受保护的分支上使用它们,请确保取消选中受保护的复选框
-这是在我的配置文件中创建的个人访问令牌。它具有读存储库和写存储库权限。 我是该存储库的所有者/维护者,因此它授予推进此回购的权限我的推送令牌
-可选,需要将包推送到PYPI.orgPYPI_令牌
- 上面的示例使用组中的一个repo,如果组中没有一个repo,则可能需要更改设置的url源地址
参数防止生成管道触发循环-o ci.skip
- 创建要素分支
- 推码
- 创建合并请求
- 将MR合并为master
- -使ci中的git正常工作
- -帮助我更好地理解bump2version