我有一个很长的gitlab CI,是一种单声道存储库的结构。如下所示: Project A
--- .gitlab-ci.yaml (contains thousands of jobs across 3 stages(plan, test and apply) and also includes gitlab-ci folder)
--- gitlab-ci/my-ci.yaml (folder than contains specific ci files, this has 2 stages, plan and apply for my-new-code)
-
在我的本地开发机器上,我使用docker.from_env(version=auto) ()来获得一个没有任何问题的docker客户端。如果我在一个在docker容器内运行(或在本地调试期间使用gitlab-runner exec docker ... )的gitlab-ci作业中运行相同的语句来获得一个docker客户端,我会得到一个DockerException: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory
我们使用的是Gitlab 8.16.5和Gitlab API v3。构建和部署由Gitlab-CI完成。Build在每个特性和热修复分支的推送上开始工作。有3个环境:评审、试运行和生产。现在我们已经在审查部署作业上进行了两个手动操作:审查接受和审查拒绝。简单地说,正在为手动测试设置Review Environment。这意味着在评审接受中,手动测试通过&在评审拒绝中,手动测试失败。现在,我们必须创建一个MR on review accept作业,但不希望使用任何用户的私有令牌或私有访问令牌来创建相同的作业。
我们已经尝试了触发令牌,但得到了{401:未经授权的访问}。触发器是否仅用于重
我正在尝试运行一个管道,在这个管道中,最后阶段依赖于前一个阶段,作业是有条件的和手动的。
我做了这个例子.gitlab-ci.yml来证明这一点。我的工作分三个阶段:
stages:
- test
- publish
- create tag
在测试阶段有一项工作
# Tests Stage
run tests:
stage: test
script:
- run the tests
三个处于发布阶段的作业,它们都是手动的,只有在某些文件更改时才存在。
.publish:
stage: publish
script: