39 lines
1.7 KiB
Plaintext
39 lines
1.7 KiB
Plaintext
|
= GitLab: выполнение по расписанию
|
|||
|
:category: Программирование
|
|||
|
:tags: программирование, gitlab, git,
|
|||
|
|
|||
|
После помещения изменений (push) на сервер следует выполнять только
|
|||
|
задачи, не требующие много ресурсов. Ресурсоёмкие задачи можно отложить
|
|||
|
на время минимальной нагрузки сервера. Для этого нужно:
|
|||
|
|
|||
|
* в секциях файла `.gitlab-ci.yml`, запускающих задачи с высокой
|
|||
|
нагрузкой, добавить
|
|||
|
|
|||
|
[source,yaml]
|
|||
|
----
|
|||
|
only:
|
|||
|
- schedules
|
|||
|
----
|
|||
|
|
|||
|
подробнее это описано
|
|||
|
https://docs.gitlab.com/ee/ci/yaml/#only-and-except-simplified[здесь]
|
|||
|
|
|||
|
* в веб-интерфейсе в меню *CI/CD* / *Расписания* добавить *Новое
|
|||
|
расписание* и назначить исполнение задачи на время, когда нагрузка на
|
|||
|
сервер минимальна.
|
|||
|
|
|||
|
Для пропуска запланированной задачи в исполняемый скрипт нужно добавить
|
|||
|
проверку условия запуска. Например, чтобы отменить запуск компиляции,
|
|||
|
если за последний день (86400 секунд) не было изменений, можно оформить
|
|||
|
`.gitlab-ci.yml` примерно так:
|
|||
|
|
|||
|
[source,yaml]
|
|||
|
----
|
|||
|
nightly-job:
|
|||
|
only:
|
|||
|
- schedules
|
|||
|
script:
|
|||
|
- "[ $(($(date +%s)-$(git log -1 --date=format:%s --format=%cd))) -gt 86400 ] && exit 0"
|
|||
|
- make
|
|||
|
----
|