gitlab-ci 中的“发布”阶段有什么用?

时间:2021-07-19 13:25:12

标签: gitlab gitlab-ci

有人可以简单地向我解释一下发布阶段实际上做了什么,为什么它很有用? 至于我理解的官方文档,它所做的只是创建某种标签?!

编辑:(回复 wedm) 我指的是 https://docs.gitlab.com/ee/ci/yaml/#release 上的官方 gitlab 文档中描述的阶段 这个页面描述了所有细节,但我没有得到大局:我们为什么要这样做,我们在这里想要完成什么?

我接手了一个在部署阶段之后有一个“发布”阶段的项目:

release:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  needs:
    - build-release-env
  rules:
    - if: "$CI_COMMIT_TAG =~ /^v/"
  variables:
    ASSET_URL_BUILD: "${CI_PROJECT_URL}/-/jobs/artifacts/${CI_COMMIT_SHA}/download?job=build-www"
    ASSET_URL_BUNDLE: "${CI_PROJECT_URL}/-/jobs/artifacts/${CI_COMMIT_SHA}/download?job=docker-image"
  script:
    - echo "Creating release for ${CI_COMMIT_TAG} (${CI_COMMIT_SHA})"
    - cat ./CHANGELOG.latest.md
    - |
      release-cli create --name "Release ${CI_COMMIT_TAG}" --tag-name ${CI_COMMIT_TAG} \
        --description ./CHANGELOG.latest.md \
        --assets-link "{\"name\":\"Complete Build\",\"url\":\"${ASSET_URL_BUILD}\"}" \
        --assets-link "{\"name\":\"Docker image\",\"url\":\"${ASSET_URL_BUNDLE}\"}" \
        --ref ${CI_COMMIT_SHA}

2 个答案:

答案 0 :(得分:0)

引用自 GitLab documentation about releases(强调我的):

<块引用>

要在源代码历史记录中引入检查点,您可以在发布时分配一个 Git 标签。 但是,在大多数情况下,您的用户需要的不仅仅是原始源代码。它们需要您的 CI/CD 系统输出的已编译对象或其他资产。

一个常见的例子是将构建的二进制文件附加到一个版本。

答案 1 :(得分:0)

关于您给定的示例:从脚本部分看来,它正在为其运行的项目创建一个 gitlab release。以编程方式执行此操作会带来一些优势,因为并非所有选项(例如定时发布)都可以通过 gitlab 的 Web ui 获得。