有人可以简单地向我解释一下发布阶段实际上做了什么,为什么它很有用? 至于我理解的官方文档,它所做的只是创建某种标签?!
编辑:(回复 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}
答案 0 :(得分:0)
引用自 GitLab documentation about releases(强调我的):
<块引用>要在源代码历史记录中引入检查点,您可以在发布时分配一个 Git 标签。 但是,在大多数情况下,您的用户需要的不仅仅是原始源代码。它们需要您的 CI/CD 系统输出的已编译对象或其他资产。
一个常见的例子是将构建的二进制文件附加到一个版本。
答案 1 :(得分:0)
关于您给定的示例:从脚本部分看来,它正在为其运行的项目创建一个 gitlab release。以编程方式执行此操作会带来一些优势,因为并非所有选项(例如定时发布)都可以通过 gitlab 的 Web ui 获得。