2017-01-13 44 views
2

CodePipelineでGitHubからコードを取得し、CodeBuildで構築しようとしています。最初の(ソース)ステップは正常に動作します。しかし、 "UPLOAD_ARTIFACTS"の部分で2番目の(ビルド)ステップが失敗します。ここでは、関連するログ・ステートメントは以下のとおりです。AWS CodeBuild + CodePipeline: "一致する成果物パスが見つかりません"

[Container] 2017/01/12 17:21:31 Assembling file list 
[Container] 2017/01/12 17:21:31 Expanding MyApp 
[Container] 2017/01/12 17:21:31 Skipping invalid artifact path MyApp 
[Container] 2017/01/12 17:21:31 Phase complete: UPLOAD_ARTIFACTS Success: false 
[Container] 2017/01/12 17:21:31 Phase context status code: ARTIFACT_ERROR Message: No matching artifact paths found 
[Container] 2017/01/12 17:21:31 Runtime error (No matching artifact paths found) 

マイアプリはそのルートフォルダにbuildspec.ymlを持っています。それは次のようになります。

version: 0.1 

phases: 
    build: 
    commands: 
     - echo `$BUILD_COMMAND` 

artifacts: 
    discard-paths: yes 
    files: 
    - MyApp 

私のbuildspec.ymlで「MyAppのは」何か異なるべきであるように思われるが、私は(他に何が新しいのですか?)無駄にAWSのドキュメントのすべてを注ぎました。成果物を正しくアップロードするにはどうすればよいですか?

+0

あなたは私のnodejsアプリケーションとまったく同じ問題に直面しています。もしあなたが助けてくれたら助かります。 – Jeet

+0

@Jeetええ、私は '**/*'をソースなどに使う必要があったと思います。 「成果物」のセクションを参照してください。http://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax –

+0

迅速な対応をJohnにありがとうございます。私はそれを試してみるだろう。私は本当にあなたの助けに感謝します。 – Jeet

答えて

5

アーティファクトは、ソースアクションからダウンロードされたファイル、またはCodePipelineのビルドアクションの一部として生成されたファイルを参照する必要があります。

artifacts: 
    files: 
    - appspec.yml 
    - target/SampleMavenTomcatApp.war 
    - scripts/* 

私はあなたがあなたの成果物のセクションにのMyAppを使用していることがわかり、それは私はあなたがソースのOutputArtifactsに言及していると思わせる:例えば、これは私が書いたbuildspec.ymlからですCodePipelineのアクション代わりに、ダウンロードしてそこに保存するファイル(S3)を参照する必要があります。また、そのファイルを生成して保存します。

CodePipeline、CodeBuild、CodeDeploy、CodeCommitを使用するCloudFormationテンプレートのサンプルは、https://github.com/stelligent/aws-codedeploy-sample-tomcat/blob/master/codebuild-cpl-cd-cc.jsonbuildspec.ymlは同じforked repoにあります。

+1

"あなたがダウンロードしてそこに保存するファイル(S3)を参照する必要があります。そして/またはそこに生成されて保存されます。"それは理にかなっていますが、その値の名前が何であるかをどのように知っていますか?ソースアクションのS3バケットを見て、ランダムに生成された名前のように見えます。 –

+2

申し訳ありませんが、私のS3リファレンスはものを混乱させると思います。ビルドスペックの成果物/ファイルセクションには、ソースリポジトリ(つまり、GitHubのファイルであり、CodePipelineから生成されたランダムに生成された名前ではないファイル)と関連するファイルビルドプロセスから生成されます。あなたが構築している言語/プラットフォームが提供する情報に基づいて不明です。 –

+0

ああ、私は理解しています。 Man、これらのツールのドキュメントは非常に混乱しています。ありがとう! –

関連する問題