Как я могу запланировать работу на другое время в Gitlab - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть задания по сборке и тестированию в Gitlab CI yaml. Я хочу запускать сборку каждый вечер в 16.00, и я хочу запускать тестовые задания каждое утро 4.00 на GitLab, и я знаю на Gitlab CI / CD - Расписания - Новое расписание, но я не знаю, как мне это написать и работает в Gitlab CI yaml Я загрузил свой файл Gitlab CI yaml. Можете ли вы показать мне, пожалуйста?

variables:
  MSBUILD_PATH: 'C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe'
  SOLUTION_PATH: 'Source/NewProject.sln'


stages:
  - build
  - test

build_job:
  stage: build
  script:
    - '& "$env:MSBUILD_PATH" "$env:SOLUTION_PATH" /nologo /t:Rebuild /p:Configuration=Debug'
    - pwd
  artifacts:
    paths:
     -  'Output'

test_job:
  stage: test
  only:
    - schedules
  script:
    - 'Output\bin\Debug\NewProject.exe'

1 Ответ

0 голосов
/ 28 февраля 2020

Вы пробовали только : переменные / кроме: переменные ? Сначала вам нужно установить правильную переменную в вашем расписании, а затем добавить only variables в вашу конфигурацию yml. Пример:

...
build_job:
...
  only:
    variables:
      - $SCHEDULED_BUILD == "True"

test_job:
...
  only:
    variables:
      - $SCHEDULED_TEST == "True"

Если вы всегда хотите иметь 12-часовую задержку, вы можете использовать только одно расписание и добавить когда: задержано

  when: delayed
  start_in: 12 hours

ОБНОВЛЕНИЕ: Как для каждого запроса в комментариях добавлен полный пример простой конфигурации конвейера, задание build должно запускаться, когда SCHEDULED_BUILD установлено на True и test задание должно выполняться, когда SCHEDULED_TEST установлено на True:

build:
    script:
      - echo only build
    only:
      variables:
        - $SCHEDULED_BUILD == "True"

test:
    script:
      - echo only test
    only:
      variables:
        - $SCHEDULED_TEST == "True"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...