--- title: "GitLab: выполнение по расписанию" category: Программирование tags: программирование, gitlab, git, ... После помещения изменений (push) на сервер следует выполнять только задачи, не требующие много ресурсов. Ресурсоёмкие задачи можно отложить на время минимальной нагрузки сервера. Для этого нужно: * в секциях файла `.gitlab-ci.yml`, запускающих задачи с высокой нагрузкой, добавить ```yaml only: - schedules ``` подробнее это описано [здесь](https://docs.gitlab.com/ee/ci/yaml/#only-and-except-simplified) * в веб-интерфейсе в меню **CI/CD** / **Расписания** добавить **Новое расписание** и назначить исполнение задачи на время, когда нагрузка на сервер минимальна. Для пропуска запланированной задачи в исполняемый скрипт нужно добавить проверку условия запуска. Например, чтобы отменить запуск компиляции, если за последний день (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 ```