amazon-web-services - AWS 代码构建 : environment variables not found during CI jobs

标签 amazon-web-services continuous-integration environment-variables aws-codepipeline aws-codecommit

我通常根据构建工件的提交来命名工件。 基于this documentationCODEBUILD_WEBHOOK_PREV_COMMIT 是我在 AWS Code Build 中寻找的内容

这是buildspec.yml

phases:
  install: 
    commands:
      - apt-get update -y
  build:
    commands:
      - export $CODEBUILD_WEBHOOK_PREV_COMMIT
      - echo Entered the build phase...
      - echo Build started on `date`
      - mvn clean install -Dmaven.test.skip=true
      - for f in ./target/*.car;do mv -- "$f" $(echo $f | sed -E "s/.car$/_${CODEBUILD_WEBHOOK_PREV_COMMIT}.car/") ;done

artifacts:
  files:
    - ./target/*.car

构建工作正常,但提交未显示在最终的.car名称中。我想了解为什么。

假设 1:VAR 需要明确来源

我尝试了以下方法,但没有取得太大成功

env: 
  variable: 
    - COMMIT="${CODEBUILD_WEBHOOK_PREV_COMMIT}"

phases:
  install: 
    commands:
      - apt-get update -y
  build:
    commands:
      - echo Entered the build phase...
      - echo Build started on `date`
      - mvn clean install -Dmaven.test.skip=true
      - carpath=./*_CA/target/*.car
      - for f in $carpath;do mv -- "$f" $(echo $f | sed -E "s/.car$/_${COMMIT}.car/") ;done

VAR 仅适用于 AWS 默认构建容器

我正在使用Maven's official image maven:3.6.3-jdk-8 而不是 Amazon 的通用构建镜像。 VAR 是否可用于自定义图像?我找不到任何明确的迹象表明它们不是。

最佳答案

我为此浪费了整个下午的时间,对于任何遇到同样问题的人来说,以下是我的解决方法:

首先,我将 printenv 放入命令中以查看发生了什么,并且 $CODEBUILD_WEBHOOK_PREV_COMMIT env 变量完全丢失。但您可以使用 $CODEBUILD_RESOLVED_SOURCE_VERSION 来代替,它就在那里!

关于amazon-web-services - AWS 代码构建 : environment variables not found during CI jobs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61593006/

相关文章:

c# - 为什么ubuntu中的NET Core 3.1 BackgroundWorker无法访问环境变量?

c# - 使用 CreateProcessAsUser 和 CreateEnvironmentBlock 创建进程后未设置 Clientname

json - 在 Docker 中将 JSON 文件作为环境变量传递

amazon-web-services - 如何使用 CloudFormation 为 Classic Load Balancer 创建多个监听器?

amazon-web-services - AWS 雅典娜 : Delete partitions between date range

deployment - GitLab CI - 在无休止的挂起状态中构建项目

Jenkins:中止多作业中作业的执行

git - 创建一个 git post-receive 触发器(应该适用于 Mac OS X 上的 Xamarin Studio)

node.js - 如何使用 npm elasticsearch 和 http-aws-es 连接到 AWS ElasticSearch?

amazon-web-services - 如何从 AWS lex 中的意图 A 调用意图 B?