private 서브 모듈을 Github Actions에서 checkout 하고 사용하기

Woody의 기록·2023년 8월 21일
2

Submodule 접근을 위한 Access Token 발급

Profile > Setting > Developer Settings > Personal Access Tokens에서 Submodule을 접근하기 위한 access token을 발급해준다. 부모 프로젝트에서 Github Actions workflow가 repo에 checkout 할 때 해당 키를 넣어주지 않으면 private으로 지정된 submodule에 접근할 수 없어서 이후 과정에서 오류가 나기 때문에 필요하다.

Scope에 repo만 체크해주고 주고 나머지는 필요한 경우가 아니면 권한을 주지 않는 것이 보안상 안전하다.

이제 서브 모듈이 적용된 부모 프로젝트의 Action secrets에 발급된 토큰 값을 넣어준다. 이렇게 해서 workflow를 설정하는 yml 파일에 access key를 노출하지 않고 적용시킬 것이다.

Workflow 수정

checkout 할 때 private repo로 설정되어 있는 서브모듈에 접근하려면 key를 넣어주어야 한다. workflow yml 파일을 수정해준다.

Gradle로 빌드하는 부분도 수정해주었다.

JAR로 패키징하기 전에 서브 모듈이 가지고 있던 applicaiton.yml 파일이 원래 위치해야할 곳인 resources 아래로 옮기는 테스크를 수행하도록 하였다. 해당 테스크는 copyApplicationYml 라는 이름으로 사전에 직접 build.gradle에 정의해 두었다.

  • 기존에는 Gradle 빌드하는 action을 가져다 썼었는데 직접 정의한 Action을 쓰려고하니 다음과 같은 오류가 발생하였다. 직접 정의한 테스크를 사용하려면 별도의 설정이 필요한듯 하였으나, 어차피 직접 빌드 커맨드를 수행하는 것도 간단하기 때문에 해당 액션을 쓰지 않고, 직접 gradlew를 수행하도록 변경하였다.

결과

아무 파일이나 수정 후 push 해서 테스트해보면 정상적으로 deploy 되는 것을 확인할 수 있다. 실제 서버에도 잘 반영되는 것을 확인하였다.

profile
Github - https://www.github.com/woody35545

0개의 댓글