![](/img/trans.png)
[英]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.