![](/img/trans.png)
[英]Gitlab CI/CD: Schedule only for a particular job and exclude it from the pipeline
[英]gitlab job is running even if there is no changes in the schedule pipeline
我為我的 gitlab.yml 文件設置了運行管道的時間表。 在我的工作中,我設置了運行/不運行工作的規則。 但是,在我的日程安排中,無論我是否滿足任何規則,工作都會運行。
這是簡化的 yml 文件:
stages:
- build
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR : ""
DOCKER_NETWORK: "gitlab-network"
.docker_dind_service: &docker_dind_service
services:
- name: docker:20.10-dind
command: ["--insecure-registry", "my_server.net:7000"]
docker:custom:
stage: build
<<: *docker_dind_service
tags:
- docker_runner
image: docker
rules:
- if: '$FORCE_BUILD_DOCKER_IMAGE == "1"'
when: always
- changes:
- Dockerfile
- when: never
script:
- docker build -t my_image .
對於上述情況,即使我的 Dockerfile 沒有變化,作業也會添加到計划中。 我想我迷路了,因為當我對我的 yml 文件進行更改並推送它時,沒有添加此作業,這是正確的,因為 Dockerfile 沒有更改。 但是,它針對每個計划的管道運行。
顯然根據 Gitlab 文檔: https://docs.gitlab.com/ee/ci/yaml/#using-onlyrequests-without-pipelines
您應該使用規則:僅使用分支管道或合並請求管道進行更改。 您可以將規則:更改與其他管道類型一起使用,但規則:更改在沒有 Git 推送事件時始終評估為真。 標記管道、計划管道、手動管道等沒有與之關聯的 Git 推送事件。 一條規則:如果沒有,則始終將更改作業添加到這些管道中,如果這將作業限制為分支或合並請求管道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.