Как лучше контролировать планирование работы в gitlab-ci? - PullRequest
0 голосов
/ 03 июня 2019

В моих проектах gitlab определены и выполняются задания через gitlab-ci.Тем не менее, это не очень хорошо с взаимозависимыми заданиями, так как нет никакого управления этим делом, кроме как вручную.У меня есть дело, которое является частью общего приложения, и его запуск занимает много времени.Запуск этого сервиса выполняется внутри задания, в то время как у другого задания есть другой сервис, который также является частью общего приложения, запрашивающего предыдущий сервис.Из-за взаимозависимости я только что отложил выполнение этой более поздней работы, так что, скорее всего, у предыдущей работы была запущена и запущена ее служба.
Я хотел использовать Rundeck в качестве планировщика заданий, но не уверен, что это можно сделать с помощью gitlab?Может быть, я ошибаюсь насчет gitlab, поэтому gitlab позволяет лучше планировать работу?

Вот пример того, что я делаю:

.gitlab-ci.yml

deploy:
  environment:
    name:$CI_ENVIRONMENT
    url: http://$CI_ENVIRONMENT.local.net:4999/
  allow_failure: true
  script:
    - sudo dpkg -i myapp.deb
    - sleep 30m //here I wait for the service to be ready for later jobs to run successfully
    - RESULT=`curl http://localhost:9999/api/test | grep Success'

1 Ответ

0 голосов
/ 05 июня 2019

похоже, что это типичная функция триггера внутри gitlab-ci

см. триггеры gitlab-ci

в основном в конце длинного запусказадание A использовать curl для запуска другого

deploy_service_a:
  stage: deploy
  script:
  - "curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"
  only:
  - tags
...