buildspec report
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가 사용됩니다. 이 값은 대소문자를 구분하지 않습니다. 가능한 값은 다음과 같습니다.
혹시 보고 구룹에서 파일의 형식을 어떻게 나타내라 라고 할 때 쓰면 좋을 거 같다
끝!
이번 글은 좀 정확하게 풀이하지 못한 것 같지만 다음에는 더 정교한 글을 쓰겠다