我为我的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中没有任何更改。但是,它正在为每个预定的管道运行。
发布于 2022-09-14 21:12:06
显然,根据Gitlab文档:https://docs.gitlab.com/ee/ci/yaml/#using-onlychanges-without-pipelines-for-merge-requests
您应该使用规则:只对分支管道或合并请求管道进行更改。您可以在其他管道类型中使用rules: changes,但是rules:更改总是在没有Git push事件时计算为true。标记管道、计划管道、手动管道等等都没有与它们关联的Git push事件。规则:如果没有将作业限制为分支或合并请求管道,则更改作业总是添加到这些管道中。
https://stackoverflow.com/questions/73723094
复制相似问题