# #gitlab
Вопрос:
У меня есть следующая проблема:
У меня есть запланированный конвейер git, который запускается каждый рабочий день утром. Этот трубопровод запускает другие трубопроводы других проектов. Задания определены в нескольких файлах gitlab.yml в соответствующих проектах. Для лучшего понимания приведем минимальный пример только с одним запущенным заданием:
main job:
trigger: child job
child job:
// Do something here
Теперь дело в том, что это запущенное дочернее задание разрешено запускать только в определенные дни. В нашем случае это означает, что дочерняя работа не может выполняться по понедельникам.
У меня уже была идея выделить в основном задании, в какой день должно быть выполнено дочернее задание, указать дочернему заданию переменную и проверить данную переменную only
except
тегами или. Но, похоже, не так просто получить текущий рабочий день в gitlab.yml. Или я здесь ошибаюсь?
Есть ли способ достичь этого?
ОБНОВЛЕНИЕ @KamilCuk заставило меня понять, что я упустил важный аспект в вопросе. Когда дочернее задание выполняется самостоятельно, оно должно выполняться без каких-либо помех (также в понедельник), если это возможно. При срабатывании по основному заданию должна применяться проверка.
Ответ №1:
Самое простое-просто проверить это на работе.
child job:
script:
- weekday=$(LC_ALL=C date %a)
- case "$weekday" in
Mon) echo "Not running on monday"; exit 0; ;;
esac
- rest of the job
Вы можете запустить задание через API. https://docs.gitlab.com/ee/api/pipeline_triggers.html https://docs.gitlab.com/ee/ci/triggers/index.html
main job trigger child job:
script:
- weekday=$(LC_ALL=C date %a)
- case "$weekday" in
Mon) echo "Not running on monday"; exit 0; ;;
esac
- curl
-H "Authorization: Bearer somethingosmething"
$CI_GITALB_URL/.../api/4/....
trigger child job
Комментарии:
1. Хм, вы заставили меня понять, что в моем вопросе отсутствует один важный аспект. Когда дочернее задание выполняется само по себе, оно должно выполняться без каких-либо помех. При срабатывании по основному заданию должна применяться проверка. Без этого ваш ответ был бы именно тем, что я искал. Я обновлю свой вопрос. Тем не менее, возможно, этот подход можно использовать и по-другому.