场景
创建一个安装了转轮的新虚拟机
触发(从另一个项目)运行的管道,该管道在这个新虚拟机上运行
如果上面的管道在新虚拟机上失败,则执行其他操作,或者失败。
问题
我正在使用GitLabs触发器API从一个项目运行管道,但是希望它能在这个新创建的虚拟机上运行。
将这些信息解析为GitLab API的最好方法是什么,或者像标记这样的东西是最好的方法吗?
.gitlab-ci.yml
stages:
- deploy to test
- test
- deploy to prod
Terraform Deploy To Test:
stage: deploy to test
s
在我的例子中,只有当作业smoke-test圆满完成时,我才想运行作业deploy。有一个关键字,它应该能做到这一点。
然而,在docs中也有这样的文字:
In GitLab 13.9 and older, if needs: refers to a job that might not be added to a pipeline because of only, except, or rules, the pipeline might fail to create.
这正是我的情况(管道甚至没有启动,因为deploy作业不存在)。deploy作业是有条件的,使用非常复杂的rules条件:
..gitlab ci.yml配置文件不应公开给任何具有"developer“规则的用户,因为它可能会授予对变量和基础结构的不必要访问,或者使不同类型的利用行为或仅仅是不必要的更改成为可能。
因此,根据的说法,我做了项目和管道;但是如果推送的用户没有记者或开发人员或其他对包含所有配置的ci-信任项目的高权限,管道就会失败!
Found errors in your .gitlab-ci.yml:
Project `root/ci-configs` not found or access denied!
现在,我怎样才能纠正这个错误?!所以开发人员可以运行管道,但不能访问配置文
执行称为"A“的上游作业。关于下游项目"B“的A执行测试用例的成功。但是在发送来自B的邮件时,我们必须在邮件中包含上游项目的详细信息(上游项目名称,build no)。因此,我们可以很容易地映射/关联测试运行与各自的上游作业。
在下游项目的仪表板下面显示详细信息。
Started by upstream project Dev_RM_3.0_CI_Test build number 10
originally caused by:
我登记了。但在下游找不到任何可以继承的东西。
创建包含以下详细信息的示例作业,以显示当前职务详细信息。
echo $BUILD_NUMBER
ech
我将作业设置为只在将作业推送/合并到分支"dev“时才能运行,但我也希望这样做,因此如果手动触发该管道,我就能够运行它们。就像这样:
test:
stage: test
<this step should be run always>
build:
stage: build
rules:
- if: $CI_COMMIT_REF_NAME == "dev"
- if: <also run if the pipeline was run manually, but skip if it was triggered by