AWS Сборка кода: переменные среды не найдены во время заданий CI - PullRequest
0 голосов
/ 04 мая 2020

Я обычно называю артефактами на основе коммитов , из которых они были собраны. Основываясь на этой документации , 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 имени. Я хотел бы понять почему.

Гипотеза № 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. Доступны ли VAR для пользовательских изображений? Я не могу найти никаких четких указаний, что они не

...