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