Я пытаюсь использовать несколько источников CodeCommit в моей сборке CodePipeline.Я определил вторичный источник, указывающий на проект в CodeCommit в CodeBuild, и назначил ему идентификатор «sec_proj».В моем основном проекте у меня есть сборка Gradle, которая имеет следующий код
copy {
from System.getProperty("CODEBUILD_SRC_DIR_sec_proj", CODEBUILD_SRC_DIR_sec_proj)
into "$buildDir/sec_proj"
}
Когда я определяю CODEBUILD_SRC_DIR_sec_proj
в моем локальном окружении, все работает как положено, файлы из второго проекта копируются и сборка завершается.Однако, когда я пытаюсь запустить его в своем конвейере, я получаю следующую ошибку:
17:50:26.092 [ERROR]
[org.gradle.internal.buildevents.BuildExceptionReporter] Caused by:
groovy.lang.MissingPropertyException: Could not get unknown property
'CODEBUILD_SRC_DIR_sec_proj' for object of type
org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.
Так что, очевидно, мой процесс gradle не имеет этой переменной доступной.Я попытался форсировать его, используя следующий синтаксис в моем buildspec.yml
phases:
build:
commands:
- ./gradlew -i -d -S build -DCODEBUILD_SRC_DIR_sec_proj=$CODEBUILD_SRC_DIR_sec_proj
, и это не удалось с тем же сообщением.И поскольку согласно документации
Ваш первоисточник определяется под атрибутом источника.Все остальные источники называются вторичными источниками и отображаются в разделе вторичные источникиВсе вторичные источники установлены в своем собственном каталоге.Этот каталог хранится во встроенной переменной среды CODEBUILD_SRC_DIR_sourceIdentifer.
похоже, я что-то упустил?