我开发了一个复杂的网络应用程序,采用git flow、Gitlab和CI管道来将测试版本部署到测试机器上,并将主版本部署到实时演示系统。
这两个系统的构建管道相同,只有不同的部署任务:
require:
stage: require
only:
- develop
- tags
tags:
- require
script:
- npm install
build:
stage: build
only:
- develop
- tags
script:
- grunt
deploy_testing:
stage: deploy
only:
- develop
script:
- (...)
deploy_master:
stage: deploy
only:
- tags
script:
- (...)
我现在进行Git Flow的hotfix,创建一个commit到我的
develop
分支和一个tagged commit到master
。推送后,Gitlab CI将按照以下顺序运行作业:
require
(检出develop
上的提交A)require
(检出master
上标记的提交B)build
build
deploy_testing
deploy_master
我该如何保持这两个过程的分离? 我已经尝试了为
develop
和tags
明确分别设置require
和build
作业,但效果不如预期。是否有一种方法可以拥有不同的构建文件夹,或者强制Gitlab CI按不同的顺序运行作业而不需要来回切换?
dependencies
和artifacts
是使这个工作的一种方法。 - Kelvin Ddevelop
和标签。在推送标签之前,我会等待develop
构建完成。 - Kelvin D