我编写了一个 gitlab-ci.yml 文件,其中包含多个 gitlab 作业和阶段。当代码合并到特定的 git 分支并且安排一些作业时,某些作业会在该分支上运行。
我想在 Gitlab 中创建一个计划的 CI/CD 管道,它只包含特定的计划作业,而不包含所有计划的作业。那可能吗?
例如,这是我的 gitlab-ci.yml 文件。
stages:
build
test
deploy
scheduled-test-1
scheduled-test-2
scheduled-test-3
build:
script:
- echo $Service_Version
only:
- develop
except:
- schedules
test:
script:
- echo $Service_Version
only:
- develop
except:
- schedules
deploy:
script:
- echo $Service_Version
only:
- develop
except:
- schedules
scheduled-test-1:
script:
- echo $Service_Version
only:
- schedules
scheduled-test-2:
script:
- echo $Service_Version
only:
- schedules
scheduled-test-3:
script:
- echo $Service_Version
only:
- schedules
Run Code Online (Sandbox Code Playgroud)
现在,当我创建计划时,所有三个计划测试都会在管道上看到。我想创建三个计划,分别包含scheduled-test-1、scheduled-test-2和scheduled-test-3。这怎么可能?
使用only:variables:(或等效的rules:)并在您的计划中设置这些变量。
例如,如果您设置以下内容:
job_x:
only:
variables:
- $SCHEDULE_VARIABLE_X
Run Code Online (Sandbox Code Playgroud)
然后,当您创建计划时,您可以在该单独的计划中设置变量SCHEDULE_VARIABLE_X,这将允许您控制是否job_x运行该计划。
您可以相应地设置only:variables:每个作业和每个计划的变量以获得所需的控制。
| 归档时间: |
|
| 查看次数: |
4900 次 |
| 最近记录: |