amazon-web-services - AWS 代码构建:CI 作业期间未找到环境变量
问题描述
我通常根据构建它们的提交来命名工件。基于此文档,是我在AWS Code Build中寻找的CODEBUILD_WEBHOOK_PREV_COMMIT
这里是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
名称中。我想了解为什么。
假设 n°1:VAR
s 需要明确来源
我尝试了以下但没有多大成功
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
s 仅适用于 AWS 默认构建容器
我使用的是Maven 的官方镜像 maven:3.6.3-jdk-8
,而不是 Amazon 的通用构建镜像。s是否VAR
可用于自定义图像?我找不到任何明确的迹象表明它们不是。
解决方案
我整个下午都为此迷失了方向,对于任何遇到同样问题的人来说,这就是我解决它的方法:
首先,我输入printenv
了命令来查看发生了什么,并且$CODEBUILD_WEBHOOK_PREV_COMMIT
env 变量完全丢失了。但你可以改用$CODEBUILD_RESOLVED_SOURCE_VERSION
它,它就在那里!
推荐阅读
- jestjs - Angular AG Grid Jest 无法读取 null 的属性(读取“注入器”)
- python - 无法在单个图形中绘制多条线
- c++ - MSVC 中的地址消毒器:为什么它在启动时报告错误?
- mongodb - 删除集合文件后无法在 CentOS 上启动 mongod 服务
- python - 烧瓶应用程序。FileNotFoundError: [Errno 2] 没有这样的文件或目录
- javascript - 在 Google Maps API 中切换标记组
- awk - 用特定值替换子字符串的 awk 命令
- css - 使用 css attr() 函数计算 sass 中的 css 顶部
- python - 模拟请求发布响应 __dict__ 和 status_code python
- r - 在 R arules 中,如何有效地将集值数据转换为项集成员数据?