【问题标题】:How to access build id in CircleCI task如何在 CircleCI 任务中访问构建 ID
【发布时间】:2020-06-15 17:03:46
【问题描述】:

我正在尝试运行 sed 命令来替换指示当前构建 ID 的环境变量。根据文档CIRCLE_BUILD_NUM 包含我正在寻找的值,根据this example 它应该在command 中非常易于使用。

下面是配置文件,下面是bundle.gradle 文件,下面是正在执行sed 命令,下面是结果。如您所见,sed 命令只是将CIRCLE_BUILD_NUM 视为字符串而不是获取内部版本号。

config.yml

version: 2.1

orbs:
android: circleci/android@0.2.0

jobs:
build:
  executor: android/android

  steps:
    - checkout
    - setup_remote_docker: 
        docker_layer_caching: true      
    - run:
        name: testing env vars
        command: sed 's/${BUILD_NUM_1}/${CIRCLE_BUILD_NUM}/g' -i build.gradle 

bundle.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
def buildNum = ${BUILD_NUM_1}

输出

// Top-level build file where you can add configuration options common to all sub-projects/modules.
def buildNum = ${CIRCLE_BUILD_NUM}

【问题讨论】:

  • 双引号 sed 替换 -> sed "s/${BUILD_NUM_1}/${CIRCLE_BUILD_NUM}/g"
  • @Inian 这样做导致工作因错误 sed: -e expression #1, char 0: no previous regular expression 而崩溃
  • 这意味着,在命令运行时,您的 ${BUILD_NUM_1} 变量未设置。尝试在您的终端上运行它echo foobar| sed 's//bar/'
  • @Inian 谢谢,问题是将${BUILD_NUM} 指定为环境变量。

标签: sed circleci circleci-2.0 circleci-workflows


【解决方案1】:

以下sed 命令有效。

 - run:
     name: testing env vars
     command: sed "s/_buildNum/${CIRCLE_BUILD_NUM}/g" -i build.gradle 

【讨论】:

    猜你喜欢
    • 2016-06-30
    • 2017-02-12
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    相关资源
    最近更新 更多