【发布时间】: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