我的 func sendTokenId()
{
\\ code to send token to server
}
文件如下:
.gitlab-ci.yml
如您所见,有always_on:
before_script:
- echo 'before_script'
script: echo 'script done'
always_fail:
before_script:
- echo 'before_script'
script: fail_now
backend_only_mr:
only:
refs:
- merge_requests
- master
changes:
- scripts/**/*
before_script:
- echo 'before_script'
script: echo 'script done'
个作业总是失败。如果我在always_fail
目录中没有任何更改,则工作正常,并且合并请求概述显示管道失败:
当我在scripts
目录中进行了更改时,该作业将按预期方式失败,但是概述显示该作业已成功,因为scripts
已成功完成:
工作如下:
backend_only_mr
被标记为backend_only_mr
(如果有帮助的话)。
答案 0 :(得分:1)
这是当前预期的行为,因为两个管道分别为提交和合并请求运行。然后,合并请求管道会在提交失败之后“通过”传递,而GitLab则认为它已通过。
有两种方法可以解决此问题:
only: merge_requests
,以反对“我们可以合并吗?” workflow
setting允许您说“我希望我的所有作业都在合并请求管道上运行”。您还可以在https://docs.gitlab.com/ee/ci/yaml/#key-details-when-using-rules上进一步了解rules:
与only/except:
与975900 /m/03vyhn Ghosts of Mars 2001-08-24 14010832 98.0 {"/m/02h40lc": "English Language"} {"/m/09c7w0": "United States of America"} {"/m/01jfsb": "Thriller", "/m/06n90": "Science Fiction", "/m/03npn": "Horror", "/m/03k9fj": "Adventure", "/m/0fdjb": "Supernatural", "/m/02kdv5l": "Action", "/m/09zvmj": "Space western"}
3196793 /m/08yl5d Getting Away with Murder: The JonBenét Ramsey Mystery 2000-02-16 95.0 {"/m/02h40lc": "English Language"} {"/m/09c7w0": "United States of America"} {"/m/02n4kr": "Mystery", "/m/03bxz7": "Biographical film", "/m/07s9rl0": "Drama", "/m/0hj3n01": "Crime Drama"}
的解决方案。