2

フォーク、 ジャスミンテストのコンパイルと実行後にアーティファクトを生成するCodeBuildプロジェクトを起動する正しい方法を見つけようとしているか、展開を続行することはできません。AWS CodeBuildまたはLambdaを使用してデプロイメント前にジャスミンテストを実行する

buildspec.ymlは次のようになります場合:私はnpm test位相がずれて失敗する必要がありますどのように

version: 0.1 

phases: 
    install: 
    commands: 
     - echo Installing... Running npm install 
     - npm install 
    pre_build: 
    commands: 
     - echo pre_build... 
    build: 
    commands: 
     - echo Testing... Running npm test 
     - npm test 
    post_build: 
    commands: 
     - echo Build completed on `date` 
artifacts: 
    files: 
    - '**/*' 

npm testの間にジャスミンテストのいずれかが失敗した場合でも、アーティファクトはまだ生成されますか?

var params = { 
     jobId: jobId, 
     failureDetails: { 
      message: JSON.stringify(message), 
      type: 'JobFailed', 
      externalExecutionId: context.invokeid 
     } 
    }; 
    codepipeline.putJobFailureResult(params, function(err, data) { 
     ... 
    }); 

またはCodeBuildに停止信号を送信する:私が持っている

もう一つの考えはテストのいずれかが失敗した場合に発生、次のを持っているのですか?

var params = { 
    id: 'STRING_VALUE' /* required */ 
}; 
codebuild.stopBuild(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 

また、アーティファクトを生成しないようにビルドを終了するにはどうすればよいですか?たぶん私はこれが間違っている、それはユニットテストをキックオフラムダ関数でなければなりません。ラムダがこれには理想的なのかどうかは分かりません。ユニットテストを完了するまでに時間がかかることが想像できるので、

ありがとう!

答えて

3

誰かがこの問題を抱えている場合は、両方の方法が有効です。 AWS CodeBuildは、ゼロ以外の終了ステータスコードで失敗します。したがって、失敗したテストでは、パイプラインが失敗することになります。

同じことはラムダ

で行うことができます
関連する問題