amazon-web-services - AWS CodeBuild - cd: can't cd to /codebuild/output/src... 错误和未找到工件路径
问题描述
================
我是 AWS CodeBuild 的新手。我们是第一次尝试。我设置了我的 Buildspec.yml 文件,当我运行它时,我收到错误指示它 cd: can't cd to /codebuild/output/src.... 在整个构建运行过程中,但它每次都会进入下一步忽略错误。但是,当它到达工件步骤时,它找不到工件路径。我已经尝试了很多次工件的迭代:文件:没有运气的语句。我不确定 cd 错误和工件问题是否相关。
这是当前的 Buildspec 文件。我还尝试了几种不同版本的“文件:”语句,包括 - '**/*'
构建规范.yml
version: 0.2
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- echo $CODEBUILD_SRC_DIR
- uServices/hello-world-java/gradlew build
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- uServices/hello-world-java/build/distributions/*
代码构建的输出
[Container] 2019/01/31 14:19:42 Waiting for agent ping
[Container] 2019/01/31 14:19:43 Waiting for DOWNLOAD_SOURCE
[Container] 2019/01/31 14:19:44 Phase is DOWNLOAD_SOURCE
[Container] 2019/01/31 14:19:44 CODEBUILD_SRC_DIR=/codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
[Container] 2019/01/31 14:19:44 YAML location is /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git /buildspec.yml
[Container] 2019/01/31 14:19:44 Processing environment variables
[Container] 2019/01/31 14:19:44 Moving to directory /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
[Container] 2019/01/31 14:19:44 Registering with agent
[Container] 2019/01/31 14:19:44 Phases found in YAML: 4
[Container] 2019/01/31 14:19:44 POST_BUILD: 1 commands
[Container] 2019/01/31 14:19:44 INSTALL: 1 commands
[Container] 2019/01/31 14:19:44 PRE_BUILD: 1 commands
[Container] 2019/01/31 14:19:44 BUILD: 3 commands
[Container] 2019/01/31 14:19:44 Phase complete: DOWNLOAD_SOURCE Success: true
[Container] 2019/01/31 14:19:44 Phase context status code: Message:
[Container] 2019/01/31 14:19:44 Entering phase INSTALL
[Container] 2019/01/31 14:19:44 Running command echo Nothing to do in the install phase...
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
Nothing to do in the install phase...
[Container] 2019/01/31 14:19:44 Phase complete: INSTALL Success: true
[Container] 2019/01/31 14:19:44 Phase context status code: Message:
[Container] 2019/01/31 14:19:45 Entering phase PRE_BUILD
[Container] 2019/01/31 14:19:45 Running command echo Nothing to do in the pre_build phase...
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
Nothing to do in the pre_build phase...
[Container] 2019/01/31 14:19:45 Phase complete: PRE_BUILD Success: true
[Container] 2019/01/31 14:19:45 Phase context status code: Message:
[Container] 2019/01/31 14:19:45 Entering phase BUILD
[Container] 2019/01/31 14:19:45 Running command echo Build started on `date`
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
Build started on Thu Jan 31 14:19:45 UTC 2019
[Container] 2019/01/31 14:19:45 Running command echo $CODEBUILD_SRC_DIR
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
/codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
[Container] 2019/01/31 14:19:45 Running command uServices/hello-world-java/gradlew build
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
Downloading https://services.gradle.org/distributions/gradle-3.5-bin.zip
..........................................................................................................................................................................................................................................................................................
Unzipping /root/.gradle/wrapper/dists/gradle-3.5-bin/daoimhu7k5rlo48ntmxw2ok3e/gradle-3.5-bin.zip to /root/.gradle/wrapper/dists/gradle-3.5-bin/daoimhu7k5rlo48ntmxw2ok3e
Set executable permissions for: /root/.gradle/wrapper/dists/gradle-3.5-bin/daoimhu7k5rlo48ntmxw2ok3e/gradle-3.5/bin/gradle
Starting a Gradle Daemon (subsequent builds will be faster)
:buildEnvironment
------------------------------------------------------------
Root project
------------------------------------------------------------
classpath
No dependencies
BUILD SUCCESSFUL
Total time: 8.74 secs
[Container] 2019/01/31 14:19:56 Phase complete: BUILD Success: true
[Container] 2019/01/31 14:19:56 Phase context status code: Message:
[Container] 2019/01/31 14:19:56 Entering phase POST_BUILD
[Container] 2019/01/31 14:19:56 Running command echo Build completed on `date`
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
Build completed on Thu Jan 31 14:19:56 UTC 2019
[Container] 2019/01/31 14:19:56 Phase complete: POST_BUILD Success: true
[Container] 2019/01/31 14:19:56 Phase context status code: Message:
[Container] 2019/01/31 14:19:56 Expanding base directory path: .
[Container] 2019/01/31 14:19:56 Assembling file list
[Container] 2019/01/31 14:19:56 Expanding /codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
.
[Container] 2019/01/31 14:19:56 Expanded to /codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
.
[Container] 2019/01/31 14:19:56 Skipping invalid artifact path /codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
/codebuild/output/tmp/script.sh: 1: cd: can't cd to /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
.
[容器] 2019/01/31 14:19:56 阶段完成:UPLOAD_ARTIFACTS 成功:false [容器] 2019/01/31 14:19:56 阶段上下文状态代码:CLIENT_ERROR 消息:找不到 /codebuild 的匹配基目录路径/output/tmp/script.sh: 1: cd: 无法 cd 到 /codebuild/output/src590503358/src/github.com/SomosEngineering/tss-modern.git
概括
在我的开发区域中,我可以运行 Gradle 并查看位于以下目录中的 .zip 工件,如下所示。我希望 codebuild 能够找到它并将其加载到 S3。[clipford@NVA-1a-TSS-DEV01
分布]$ pwd
/home/clipford/work/tss-modern/uServices/hello-world-java/build/distributions
[clipford@NVA-1a-TSS-DEV01 发行版]$ ls
tss-现代-clipford.zip
解决方案
我最终尝试从一个亚马逊 S3 容器构建它,构建工作完全正常。然后我回到 GitHub 版本,与无法 cd 到 codebuild 目录相关的问题神奇地消失了。(我也不相信魔法,但认为这是亚马逊的问题)。
工件未加载的问题与我们项目中的工件位于不属于 GitHub 存储库的目录中的事实有关。它实际上在 .gitignore 中被忽略了。工件目录是在构建时创建的,看起来由于它在 .gitignore 中被忽略并且不是 repo 的一部分,因此代码构建找不到工件并且无法将其加载到 S3。
推荐阅读
- python - 有没有办法使用 python 获取谷歌云存储桶中的对象数量?
- python - 如何填充不连续的线
- python - 在第一个“linspace”排除某个点之后第二次“numpy.linspace”
- r - 如何向量化这个 ifelse 语句?
- python - 如何在 python 中将条码扫描器与 tkinter GUI 应用程序集成?
- javascript - 在 html 中显示选择选项的值
- sql - 查找在不同列上包含相同值的行
- wordpress - 尝试在本地运行 WP Engine 站点,但它一直在重定向
- flutter - 在颤动中绘制双打列表
- php - WooCommerce 挂钩 - 如何在挂钩函数中传递 $product 等变量?