【发布时间】:2020-08-18 22:12:18
【问题描述】:
我通常根据构建它们的提交来命名工件。
基于this documentation,CODEBUILD_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
构建工作,但 commit 未显示在最终的 .car 名称中。我想了解为什么。
假设 n°1:VARs 需要明确来源
我尝试了以下但没有成功
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
VARs 仅适用于 AWS 默认构建容器
我使用的是Maven's official imagemaven:3.6.3-jdk-8,而不是亚马逊的通用构建映像。 VARs 是否可用于自定义图像?我找不到任何明确的迹象表明它们不是。
【问题讨论】:
-
您解决了吗?我遇到了同样的问题,我不知道为什么它不起作用。
-
很遗憾,此迁移项目已被客户推迟。从那以后就没有太多的机会去工作了。我会尽快更新它(天知道什么时候......)
-
嘿,所以我在写完初步评论后就想通了。我将
printenv放入命令中以查看发生了什么,而$CODEBUILD_WEBHOOK_PREV_COMMIT完全丢失了。改用$CODEBUILD_RESOLVED_SOURCE_VERSION,就在那里!
标签: amazon-web-services continuous-integration environment-variables aws-codepipeline aws-codecommit