[英]How can i auto deploy with gitlab-ci.yml on a remote server without GitLab Runner?
[英]How can I skip a job based on the changes made in .gitlab-ci.yml?
我在 GitLab CI/CD 中有两个工作: build-job
(大约需要 10 分钟)和deploy-job
(大约需要 2 分钟)。 在管道中, build-job
成功,而deploy-job
由于脚本中的拼写错误而失败。 如何修复此错字并仅运行deploy-job
,而不是重新运行build-job
?
我当前的 .gitlab-ci.yml如下:
stages:
- build
- deploy
build-job:
image: ...
stage: build
only:
refs:
- main
changes:
- .gitlab-ci.yml
- pubspec.yaml
- test/**/*
- lib/**/*
script:
- ...
artifacts:
paths:
- ...
expire_in: 1 hour
deploy-job:
image: ...
stage: deploy
dependencies:
- build-job
only:
refs:
- main
changes:
- .gitlab-ci.yml
- pubspec.yaml
- test/**/*
- lib/**/*
script:
- ...
我想像:
deploy-job
脚本中的错字并推送更改build-job
/ only
/ changes
描述的文件并检测.gitlab-ci.yml文件中的单个更改build-job
部分并且之前的作业成功,因此跳过此作业deploy-job
/ only
/ changes
描述的文件,并检测.gitlab-ci.yml文件中的单个更改deploy-job
部分,所以这个job被执行这样,只执行deploy-job
。 可以使用rules
还是only
使用规则来完成?
有一个直接的方法,你只需要访问 gitlab CI 接口。
另一种方法是创建一个新作业,仅在需要时运行,您可以在其中设置非依赖部署。 只需复制没有依赖项的当前部署代码。 还添加手动模式
job:
script: echo "Hello, Rules!"
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: manual
allow_failure: true
作为文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.