我的管道有3个阶段:测试,准备和 Publish 。
我在手动阶段“手动发布” 中添加了手动发布功能,用于通过 develop 和 master 以外的任何方式成功发布任何提交。但是,该阶段需要 Prepare 中的工件。我曾经使用needs
运行 Prepare ,但是如果我们不触发“手动发布” Test 之后执行一次>,这是浪费时间和资源。
我们可以将现有工作附加/导入/合并吗?
我试图在手动发布中导入 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
每个作业应在不同的运行程序上执行; prepare-artifact
在Docker运行程序内部执行,而build-and-publish
需要Shell运行程序。
答案 0 :(得分:0)
解决方案是制作第一本作业手册,而下一个“需要”。
我添加了手动触发的手动准备作业,并且 Publish 作业已配置为needs
手动准备。这样,只有在完成手动准备后,他才能被处决。
# ...
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