공개

buildspec report

sangwoon 2022. 2. 11. 09:17
version: 0.2
phases:
  build:
    commands:
      - echo Build Starting on `date`
      - chmod +x ./gradlew
      - ./gradlew build
  post_build:
    commands:
      - echo $(basename ./build/libs/*.jar)
      - pwd
reports:
  (자신이 만든 보고서 그룹의 arn):
    files:
      - '**/*'
    base-directory: 'build/test-results/test'
artifacts:
  files:
    - build/libs/*.jar  
    - appspec.yml 
    - scripts/**
  discard-paths: yes

 

 

 

 

내가 작성한 build 파일이다

 

물론 reports 부분만 보면 된다 

 

reports:
  (자신이 만든 보고서 그룹의 arn):
    files:
      - '**/*'
    base-directory: 'build/test-results/test'

 

 

나는 보고서 group 에 가서

 

이런식으로 작성을 해서 만들었다

보고서 구룹은 codebuild 하는 칸을 잘 보면 있다

 

그래서 암튼 나는 보고서 그룹을 잘 작성하고 실행을 했는데 

 

에러 400을 주면서 create report 를 할 권한이 없다고 했다 

 

그래서 build 의 iam role 에 가서 create report 에 들어가서

확인해 봤더니 

 

기본적으로 잘 되어 있는 것 같았다 

근데 왜 안될까 생각하다 create 가 안된다는 이야기니까 

AdministratorAccess

권한을 주고 다시 돌렸는데 되었다

 

근데 그냥 create가 안되는 거면 administratorAccess 를 줘서 모든 권한을 주면 되지 않을까라는 그런 생각을 했다 ㅋㅋㅋㅋ

 

administratorAccess 에 대해 잠깐 설명을 하자면 

서버를 죽이고 살리고, 서비스를 띄우고 내리고 뿐만아니라 그냥 모든 권한을 가질 수 있는 것이라고 생각하면 된다

 

이 권한을 신중히 줘야하는 권한이지만 

 

일단 이걸 쓰면 안되는 것들이 되어버리는....

 

 

 

그럼 이젠 aws documents를 활용해서 개념을 알도록 하겠다

 

report-group-name-or-arn

부분이다 

여기가 우리가 arn 을 넣었던 부분이다

기존 보고서 그룹의 ARN 또는 새 보고서 그룹의 이름을 지정합니다

라고 써있다 그냥 ARN 써서 저기에 기록을 해야겠다 이런 느낌으로 가면 될 것같다

 

 

reports/<report-group>/files

다음은 files 부분이고 여긴 필수적인 부분이다

 

보고서에 의해 생성된 테스트 결과의 원시 데이터가 포함된 위치를 나타냅니다

스칼라 스퀀스를 포함하며, 각 스칼라는 원래 codebuild 위치를 관련하여 테스트 파일을 찾을 수 있는 개별 위치 또는 설정된 경우를 나타태냅니다.base-directory. 위치에는 다음이 포함될 수 있습니다.

 

 

이런식으로 써져 있는데 build 를 해보면 알겠지만 

test-result/test에 테스트 결과의 원시 데이터가 있는 것을 알 수 있다 

근데 파일이 여러개라 그 모든 파일을 가지기 위해 **/*를 사용한 것 같고

그 파일을 위치를 base-directory 로 잡아준 것 같다.

 

그렇다면 base-directory 대해서도 알아보자

base-directory

선택적 매핑. CodeBuild가 원시 테스트 파일을 찾을 위치를 결정할 때 가 사용하는 원래 빌드 위치를 기준으로 하나 이상의 최상위 디렉터리를 나타냅니다.

라고 나타나 있는데 역시 위에서 말했던 것처럼

 

원시 테스트 파일을 찾을 때 사용하는 것이 맞았다

 

 

reports/<report-group>/file-format

이번에는 file-format 다

 

선택적 매핑. 보고서 파일 형식을 나타냅니다. 지정하지 않으면 JUNITXML가 사용됩니다. 이 값은 대소문자를 구분하지 않습니다. 가능한 값은 다음과 같습니다.

 

혹시 보고 구룹에서 파일의 형식을 어떻게 나타내라 라고 할 때 쓰면 좋을 거 같다 

 

 

끝!

 

 

 

 

 

이번 글은 좀 정확하게 풀이하지 못한 것 같지만 다음에는 더 정교한 글을 쓰겠다