gitlab - GitLab CI 使用标签工件进行发布而不被覆盖
问题描述
我遇到的问题是我composer.json
在标签阶段用 npm 的 package.json 版本重写了我的扩展。但是如果涉及到 release 部分,composer.json
则使用分支的而不是 artifact composer.json
。
tag:
extends: .node
image: node
stage: prepare for deployment
artifacts:
reports:
dotenv: variables.env # Use artifacts:reports:dotenv to expose the variables to other jobs
when: on_success
expire_in: 2 weeks
paths:
- variables.env
- ./vendor/
- ./web/
- ./composer.json
- ./composer.lock
before_script:
- npm i minimist
script:
- npm run version:show
- npm run version:copy
- npm run version:set
- VERSION=$(node -pe "require('./package.json').version")
- echo $VERSION
- echo "EXTRA_DESCRIPTION=some message" >> variables.env # Generate the EXTRA_DESCRIPTION and TAG environment variables
- echo "TAG=$VERSION" >> variables.env # and append to the variables.env file
release:
image: registry.gitlab.com/gitlab-org/release-cli:latest
stage: release
script:
- echo 'running release_job'
needs:
- job: tag
artifacts: true
release:
name: 'Release $TAG'
description: 'Created using the release-cli $EXTRA_DESCRIPTION' # $EXTRA_DESCRIPTION and the $TAG
tag_name: '$TAG' # variables must be defined elsewhere
ref: '$CI_COMMIT_SHA'
那是我的gitlab-ci.yml
,我不知道如何处理它。所以只是为了让你明白。例如composer.json
,版本为0.0.1,但我们要推送1.2.3版本。这就是为什么我们在 中定义它package.json
并让它被覆盖(我们对多个文件执行此操作以使它们都具有相同的版本)。
解决方案
推荐阅读
- java - 是否可以并行运行我的以下代码?
- c - 如何从c中的向量中对元素进行排序?
- javascript - D3.js 从对象数组数据集中视觉选择图像 URL
- opencv - GPU 上的图像调整大小比 cv::resize 慢
- oracle - 是否可以仅使用 SQL*Plus 格式将列转换为行?
- python - 是否可以从作为参数给出的类继承?
- angular8 - 错误类型错误:无法读取未定义的属性'project_name' - Angular 8
- ruby-on-rails - 使用 CSV.foreach 时如何跳过/忽略格式错误的 CSV?
- scala - 有没有办法通过单个 HList 定义多个隐式证据?
- sequence - 在 Raku 中简洁地打印数学系列