我如何在Gitlab中安排不同时间的作业

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在Gitlab中安排不同时间的作业相关的知识,希望对你有一定的参考价值。

我在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'
答案

您尝试过only:variables/except:variables吗?首先,您需要在日程安排中设置适当的变量,然后将only variables添加到yml配置中。示例:

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

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

如果您始终希望有12小时的延迟,则可以只使用一个时间表并添加when:delayed

  when: delayed
  start_in: 12 hours

更新:根据注释中的请求添加了简单管道配置的完整示例,当SCHEDULED_BUILD设置为True时应运行作业build,而当设置SCHEDULED_TEST时应运行test作业到True

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

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

以上是关于我如何在Gitlab中安排不同时间的作业的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pl/sql 中安排作业?

如何在 celery 中安排工作日感知工作

如何检查是不是在 Firebase 作业调度程序中安排了作业?

如何在 Big Query 中安排每日插入作业 [重复]

如何在 Django 中安排任务?

如何在 BigQuery 中安排脚本?