2

여러분, jasmine 테스트를 컴파일하고 실행 한 후 이슈를 생성하거나 CodePipeline을 실패 및 중지하는 CodeBuild 프로젝트를 발생시키는 올바른 방법을 알아 내려고 노력했습니다. 배포를 진행할 필요가 없습니다.AWS CodeBuild 또는 Lambda를 사용하여 배포 전에 jasmine 테스트 실행

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 위상 실패 :

buildspec.yml처럼 보인다면? 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는 0이 아닌 종료 상태 코드에서 실패합니다. 따라서 실패한 테스트는 파이프 라인을 실패하게 만듭니다.

동일 이름은 람다

관련 문제