Я пытаюсь вызвать конкретное задание в CI после того, как одно из двух условий
- инициирует другое задание в том же конвейере ИЛИ
- изменения : somefile.txt
Мой CI такой, как описано
job1:
stage: build
script:
- echo "JOb1"
- curl -X POST -F token=2342344444 -F "variables[TRIGGER_JOB]=job1" -F ref=master https://main.gitlab.myconmpanyxyz.com/api/v4/projects/1234/trigger/pipeline
only:
changes:
- job1.md
job2: # This does not RUN as expected because of the TRIGGER_JOB set to job1
stage: test
script:
- echo "Job2"
rules:
- if: $TRIGGER_JOB =="job2"
job3: # this RUNS as expected because of VARIABLE TRIGGER_JOB
stage: test
script:
- echo "Job3"
rules:
- if: $TRIGGER_JOB =="job1"
job4: # this also RUNS, but this should not be the expected behavior
stage: test
script:
- echo “job4“
rules:
- if: $TRIGGER_JOB == "xyz"
- changes:
- job4.md
После завершения job1 также необходимо вызвать job4 и , а не любые другие задания (job2 в этот случай). Поэтому я использую CURL для вызова самой работы. Если есть какие-либо более эффективные способы вызова заданной c работы в том же CI, пожалуйста, дайте мне знать. Я уже видел эту страницу переполнения стека, но это не помогает, потому что моя работа должна быть вызвана любым из 2 условий , что не разрешено, бит gitlab-ci.
Мне нужно, чтобы job4 вызывался по одному из двух условий - если TRIGGER_JOB == "job1" или есть какие-либо изменения в файле job4.md, В настоящее время job4 запускается, если в файл job4.md вносятся изменения, но также запускается и при запуске job1. Но на самом деле это не должно быть ожидаемым поведением. документы . Может кто-нибудь, пожалуйста, дайте мне несколько советов, как создать этот вид дизайна.