GitLab,带依赖项的手动作业
我的管道分为三个阶段:测试、准备和发布GitLab,带依赖项的手动作业,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我的管道分为三个阶段:测试、准备和发布 测试,针对任何分支上的任何提交执行 准备,在开发和掌握 发布、重用来自Prepare的工件,并在develop*和master上执行 我在手动阶段添加了“手动发布”,以手动发布除develope和master之外的任何成功提交。然而,该阶段需要来自Prepare的工件。我使用了needs来运行Prepare,但是如果我们不触发“手动发布”,那么在测试之后就会执行该操作,这是浪费时间和资源 我们可以在另一个作业中附加/导入/合并现有作业吗 我已尝试在手动
- 测试,针对任何分支上的任何提交执行
- 准备,在开发和掌握
- 发布、重用来自Prepare的工件,并在develop*和master上执行
needs
来运行Prepare,但是如果我们不触发“手动发布”,那么在测试之后就会执行该操作,这是浪费时间和资源
我们可以在另一个作业中附加/导入/合并现有作业吗
我已尝试在手动发布中导入准备作业,但未成功:
build-and-publish-manually:
<<: *prepare-docker
<<: *build-and-publish
except:
variables:
- $CI_COMMIT_REF_NAME == $DEVELOP_BRANCH
- $CI_COMMIT_REF_NAME == $MASTER_BRANCH
when: manual
手动生成和发布:
解决方案是制作第一本工作手册,下一本“需要”它
我添加了一个手动触发的手动准备作业,发布作业被配置为需要手动准备。因此,只有在完成手动准备后,他才会被执行
#。。。
手动准备docker:
根据我对手工作业的经验,我们只是手动运行整个管道,然后才执行所需的手工步骤。真的是这样浪费资源吗?我的意思是,您使用这种手动执行的频率有多高?您只需要执行一个步骤就需要消耗多少?对于更高级的管道,我们使用Jenkins,很容易将其配置为从特定构建编号(例如,作为参数)获取工件。
# ...
prepare-docker-manually:
<<: *prepare-docker
when: manual
build-and-publish-manually:
<<: *build-and-publish
except:
variables:
- $CI_COMMIT_REF_NAME == $DEVELOP_BRANCH
- $CI_COMMIT_REF_NAME == $MASTER_BRANCH