首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用gitlab和bump2version实现发布的自动化

用gitlab和bump2version实现发布的自动化
EN

Stack Overflow用户
提问于 2021-03-22 22:12:55
回答 1查看 1K关注 0票数 1

我是gitlab的新手,我有一个python包,我想为它自动发布下一个版本。我想要:

  1. 主=>上的合并创建了一个新的次要版本
  2. 标记=>创建一个新的主版本。

我需要帮助来做这件事。我的.gitlab-ci.yml文件正确吗?A如何创建这个标记?我应该如何写我的提交消息?以及在部署之后可以找到新版本引用的地方。

我们在github流中工作,有一个功能分支和一个主分支。(无开发、prod、uat..etc分支)

.gitlab-ci.yml

代码语言:javascript
复制
image: python:latest

stages:
  - test
  - tag
  - deploy

before_script:
  - pip install -r requirements.txt

test:
  stage: test
  script:
    - pytest -vv

tag:
  stage: tag
  script:
    - pip install twine bump2version
    - bump2version release
    - python setup.py sdist bdist_wheel
    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --verbose --skip-existing --repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi dist/*
  only:
    - tags
      
deploy:
  stage: deploy
  script:
    - pip install twine bump2version
    - bump2version minor
    - python setup.py sdist bdist_wheel
    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --verbose --skip-existing --repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi dist/*
  only:
    - master

pages:
  stage: deploy
  script:
  - pip install -U sphinx
  - sphinx-build -b html source public
  artifacts:
    paths:
    - public
  only:
  - master

setup.py

代码语言:javascript
复制
import setuptools

setuptools.setup(
    name="myApp",  # Replace with your own username
    version="0.0.1",
    author="name NAME",
    author_email="name@email.com",
    description="my new Application",
    packages=setuptools.find_packages(),
    install_requires=[
        "google-auth==1.24.0",
        "pydantic==1.7.3",
        "email-validator==1.1.2",
        "pytest-mock==3.3.1"
    ],
    classifiers=[
        "Programming Language :: Python :: 3",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)
EN

回答 1

Stack Overflow用户

发布于 2021-04-24 18:16:23

GitLab作业具有预定义环境变量,在从gitlab-ci.yml调用脚本时可能会对此感兴趣。

自从GitLab 13.11 (2021年4月)以来,你现在有:

提交作者的预定义CI/CD变量 以前,如果您需要在正在运行的CI/CD作业中标识提交的作者,则必须向作业中添加一个额外的API调用来检索它。 现在,这些信息可以作为CI_COMMIT_AUTHOR预定义的CI/CD变量随时提供。 感谢克雷格安德鲁斯的贡献! 见文档问题

这可以帮助您的author/author_email变量,考虑到该变量是Name <email>格式的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66754554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档