【问题标题】:How do I determine if a build is a scheduled job in CircleCI?如何确定构建是否是 CircleCI 中的计划作业?
【发布时间】:2019-05-12 15:05:11
【问题描述】:

我想从构建内部确定构建是否是计划作业

例如,在 Travis CI 上,我的构建脚本会查找 $TRAVIS_EVENT_TYPE 环境变量以查看其值是否为 cron

我应该如何在 CircleCI 上做到这一点?

【问题讨论】:

    标签: cron scheduled-tasks circleci


    【解决方案1】:

    使用自定义环境变量 (envar)。虽然您不能直接在工作流中设置 envar,但您可以将一个 envar 添加到 CircleCI 上下文,然后将该上下文附加到工作流。 envar 名称可以是任何你想要的,值可以是任何你想要的。

    一个示例是创建一个名为 nightly 的上下文,其中包含一个 envar,然后您可以在作业中检查该上下文。这是一个例子:

      nightly-build:                                                                                                                                                          
        triggers:                                                                                                                                                             
          - schedule:                                                                                                                                                         
              cron: "0 0 * * *"                                                                                                                                               
              filters:                                                                                                                                                        
                branches:                                                                                                                                                     
                  only: master
        jobs:
          - build:
              context: nightly
    

    【讨论】:

    • 这是否表明我什至可以区分不同的 cron 作业?听起来棒极了!
    • 绿色勾号待定,我试试看。
    • 是的。上下文是一个额外的抽象层,但允许您灵活地在作业中使用因特定工作流程而异的环境变量。
    • 我刚刚在您的配置中添加了一个工作流,但它不再构建(推送)。我需要它来构建每次推送除了预定的作业
    • 您的配置现在有两个工作流程,对吧?您拥有的原始工作流程以及预定的工作流程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多