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}
解决方案
关于您给定的示例:从脚本部分看起来它正在为其运行的项目创建一个gitlab 版本。以编程方式这样做会带来一些优势,因为并非所有选项(例如定时发布)都可以通过 gitlab 的 web ui 获得。
推荐阅读
- macos - -lgfortran library not found mac(链接器命令失败)
- bash - 删除 BASH 中第一列包含特定字符的行
- reactjs - 如何在 Reactjs 功能组件 history.push 中使用
- android - 如何将 Spinner 设置到 Recyclerview 适配器中
- html - 使背景固定并居中的 div 居中
- r - 根据列表中的 r 和 rbind 文件中的值在列表中创建组
- xamarin - 如何在 Xamarin 表单中使用深色主题浅色主题?
- python - 如何在 Python 中更改二维数组的顺序
- bash - 具有多种分隔符的 bash 脚本中的参数
- html - HTML 和 CSS 图像不会彼此相邻出现(即使使用“浮动”也不会!)