= GitLab: выполнение по расписанию :title-separator: {sp}| :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 ----