适用于 Angular 的 AWS CodeBuild YAML

MrD*_*MrD 2 amazon-web-services angular

我正在尝试使用代码管道将一个角度应用程序从 github 部署到弹性 beantalk。

这是我的简单 yml:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
      - echo Installing angular cli...
      - npm install -g @angular/cli
build:
  commands:
    - echo Build started...
    - ng build --prod

artifacts:
  files:
    - dist/
Run Code Online (Sandbox Code Playgroud)

和错误堆栈:

[Container] 2019/06/28 10:44:26 Waiting for agent ping 
[Container] 2019/06/28 10:44:29 Waiting for DOWNLOAD_SOURCE 
[Container] 2019/06/28 10:44:30 Phase is DOWNLOAD_SOURCE 
[Container] 2019/06/28 10:44:30 CODEBUILD_SRC_DIR=/codebuild/output/src628764845/src 
[Container] 2019/06/28 10:44:30 YAML location is /codebuild/output/src628764845/src/buildspec.yml 
[Container] 2019/06/28 10:44:30 Processing environment variables 
[Container] 2019/06/28 10:44:30 Moving to directory /codebuild/output/src628764845/src 
[Container] 2019/06/28 10:44:30 Registering with agent 
[Container] 2019/06/28 10:44:30 Phases found in YAML: 1 
[Container] 2019/06/28 10:44:30  INSTALL: 2 commands 
[Container] 2019/06/28 10:44:30 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED 
[Container] 2019/06/28 10:44:30 Phase context status code:  Message:  
[Container] 2019/06/28 10:44:30 Entering phase INSTALL 
[Container] 2019/06/28 10:44:30 Running command echo "Installing Node.js version 10 ..." 
Installing Node.js version 10 ... 

[Container] 2019/06/28 10:44:30 Running command n 10.16.0 

[Container] 2019/06/28 10:44:31 Running command echo Installing angular cli... 
Installing angular cli... 

[Container] 2019/06/28 10:44:31 Running command npm install -g @angular/cli 
/usr/local/bin/ng -> /usr/local/lib/node_modules/@angular/cli/bin/ng 

> @angular/cli@8.0.6 postinstall /usr/local/lib/node_modules/@angular/cli 
> node ./bin/postinstall/script.js 

+ @angular/cli@8.0.6 
added 228 packages from 175 contributors in 10.074s 

[Container] 2019/06/28 10:44:42 Phase complete: INSTALL State: SUCCEEDED 
[Container] 2019/06/28 10:44:42 Phase context status code:  Message:  
[Container] 2019/06/28 10:44:42 Entering phase PRE_BUILD 
[Container] 2019/06/28 10:44:42 Phase complete: PRE_BUILD State: SUCCEEDED 
[Container] 2019/06/28 10:44:42 Phase context status code:  Message:  
[Container] 2019/06/28 10:44:42 Entering phase BUILD 
[Container] 2019/06/28 10:44:42 Phase complete: BUILD State: SUCCEEDED 
[Container] 2019/06/28 10:44:42 Phase context status code:  Message:  
[Container] 2019/06/28 10:44:42 Entering phase POST_BUILD 
[Container] 2019/06/28 10:44:42 Phase complete: POST_BUILD State: SUCCEEDED 
[Container] 2019/06/28 10:44:42 Phase context status code:  Message:  
[Container] 2019/06/28 10:44:42 Expanding base directory path: . 
[Container] 2019/06/28 10:44:42 Assembling file list 
[Container] 2019/06/28 10:44:42 Expanding . 
[Container] 2019/06/28 10:44:42 Expanding artifact file paths for base directory . 
[Container] 2019/06/28 10:44:42 Assembling file list 
[Container] 2019/06/28 10:44:42 Expanding dist/ 
[Container] 2019/06/28 10:44:42 Skipping invalid artifact path dist/ 
[Container] 2019/06/28 10:44:42 Phase complete: UPLOAD_ARTIFACTS State: FAILED 
[Container] 2019/06/28 10:44:42 Phase context status code: CLIENT_ERROR Message: no matching artifact paths found 
Run Code Online (Sandbox Code Playgroud)

据说编译后的源代码在dist,但它似乎无法找到它......建议?

Yon*_*Tao 5

首先,build阶段没有正确缩进,因此从未执行 BUILD 命令。

此外,CodeBuild 不接受dist/作为有效文件路径。您可以将工件文件更新为dist/**/*(参考:https : //docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax,您可以在该artifacts部分)

我能够使用这个 YAML 成功构建:

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
      - echo Installing angular cli...
      - npm install -g @angular/cli
      - yarn add @angular-devkit/build-angular --dev
  build:
    commands:
      - echo Build started...
      - ng build --prod
artifacts:
  files:
    - dist/**/*
Run Code Online (Sandbox Code Playgroud)

构建日志(注意这一行[Container] 2019/06/29 03:54:46 BUILD: 2 commands):

[Container] 2019/06/29 03:54:43 Waiting for agent ping 
[Container] 2019/06/29 03:54:45 Waiting for DOWNLOAD_SOURCE 
[Container] 2019/06/29 03:54:46 Phase is DOWNLOAD_SOURCE 
[Container] 2019/06/29 03:54:46 CODEBUILD_SRC_DIR=/codebuild/output/src432990035/src/github.com/taoyong-ty/CodeBuildAngularJS 
[Container] 2019/06/29 03:54:46 YAML location is /codebuild/readonly/buildspec.yml 
[Container] 2019/06/29 03:54:46 Processing environment variables 
[Container] 2019/06/29 03:54:46 Moving to directory /codebuild/output/src432990035/src/github.com/taoyong-ty/CodeBuildAngularJS 
[Container] 2019/06/29 03:54:46 Registering with agent 
[Container] 2019/06/29 03:54:46 Phases found in YAML: 2 
[Container] 2019/06/29 03:54:46  INSTALL: 3 commands 
[Container] 2019/06/29 03:54:46  BUILD: 2 commands 
[Container] 2019/06/29 03:54:46 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED 
[Container] 2019/06/29 03:54:46 Phase context status code:  Message:  
[Container] 2019/06/29 03:54:46 Entering phase INSTALL 
[Container] 2019/06/29 03:54:46 Running command echo "Installing Node.js version 10 ..." 
Installing Node.js version 10 ... 

[Container] 2019/06/29 03:54:46 Running command n 10.16.0 

[Container] 2019/06/29 03:54:50 Running command echo Installing angular cli... 
Installing angular cli... 

[Container] 2019/06/29 03:54:50 Running command npm install -g @angular/cli 
/usr/local/bin/ng -> /usr/local/lib/node_modules/@angular/cli/bin/ng 

> @angular/cli@8.0.6 postinstall /usr/local/lib/node_modules/@angular/cli 
> node ./bin/postinstall/script.js 

+ @angular/cli@8.0.6 
added 228 packages from 175 contributors in 8.003s 

[Container] 2019/06/29 03:55:00 Running command yarn add @angular-devkit/build-angular --dev

 ...

[Container] 2019/06/29 03:55:27 Phase complete: INSTALL State: SUCCEEDED 
[Container] 2019/06/29 03:55:27 Phase context status code:  Message:  
[Container] 2019/06/29 03:55:27 Entering phase PRE_BUILD 
[Container] 2019/06/29 03:55:27 Phase complete: PRE_BUILD State: SUCCEEDED 
[Container] 2019/06/29 03:55:27 Phase context status code:  Message:  
[Container] 2019/06/29 03:55:27 Entering phase BUILD 
[Container] 2019/06/29 03:55:27 Running command echo Build started... 
Build started... 

[Container] 2019/06/29 03:55:27 Running command ng build --prod 

Date: 2019-06-29T03:55:53.941Z 
Hash: 1c706bd9139214c9249a 
Time: 23138ms 
chunk {0} runtime-es5.741402d1d47331ce975c.js (runtime) 1.41 kB [entry] [rendered] 
chunk {1} main-es5.e3ebb85443beec4e9e43.js (main) 242 kB [initial] [rendered] 
chunk {2} polyfills-es5.3c7a89c465e3c36435bf.js (polyfills) 111 kB [initial] [rendered] 

Date: 2019-06-29T03:56:11.506Z 
Hash: 6942a0134cd3414197f9 
Time: 17532ms 
chunk {0} runtime-es2015.858f8dd898b75fe86926.js (runtime) 1.41 kB [entry] [rendered] 
chunk {1} main-es2015.0e84a207334269c68b86.js (main) 209 kB [initial] [rendered] 
chunk {2} polyfills-es2015.5728f680576ca47e99fe.js (polyfills) 36.4 kB [initial] [rendered] 
chunk {3} styles.3ff695c00d717f2d2a11.css (styles) 0 bytes [initial] [rendered] 

[Container] 2019/06/29 03:56:11 Phase complete: BUILD State: SUCCEEDED 
[Container] 2019/06/29 03:56:11 Phase context status code:  Message:  
[Container] 2019/06/29 03:56:11 Entering phase POST_BUILD 
[Container] 2019/06/29 03:56:11 Phase complete: POST_BUILD State: SUCCEEDED 
[Container] 2019/06/29 03:56:11 Phase context status code:  Message:  
[Container] 2019/06/29 03:56:11 Expanding base directory path: . 
[Container] 2019/06/29 03:56:11 Assembling file list 
[Container] 2019/06/29 03:56:11 Expanding . 
[Container] 2019/06/29 03:56:11 Expanding artifact file paths for base directory . 
[Container] 2019/06/29 03:56:11 Assembling file list 
[Container] 2019/06/29 03:56:11 Expanding dist/**/* 
[Container] 2019/06/29 03:56:11 Found 10 file(s) 
[Container] 2019/06/29 03:56:11 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED 
[Container] 2019/06/29 03:56:11 Phase context status code:  Message: 
Run Code Online (Sandbox Code Playgroud)