application.yml 이나 properties에는 기본적으로 DB의 정보나 다른 연결되는 여러 주소 정보를 가지고 있습니다.
하지만 이것을 함부로 github에 올리게 되면 보안적으로 큰 이슈가 발생할 수 있습니다.
솔루션
github에서는 setting -> secrets and variables -> actions에 시크릿 키를 추가 할 수 있는 기능이 있습니다.
하지만 actions에 시크릿 키를 추가할 때 yml 파일 형식을 지원하지 않는데 어떻게 추가를 하는지 의문을 제기할 수 있지만 springboot는 똑똑해서 그런지 yml과 properties를 가리지 않고 내용을 넣을 수 있습니다.
spring:
profiles:
include:
- secret
우선 기본 application.yml에 properties-secret을 include를 시키지만 github에 secret은 올라가지 않기 때문에
actions에 APPLICATION_SECRET을 추가한 후에
- name : add application-secret
run : touch ./src/main/resources/application-secret.properties &&
echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.properties
- name: Build with Maven
run: mvn -B package --file pom.xml
위와 같이 변수를 등록하면 maven 프로젝트를 빌드할 때 APPLICATION_SECRET의 내용이 application-secret.properies에 들어가 빌드가 무사히 실행됩니다.
주의사항
빌드 밑에 add application-secret 추가하시면 빌드 안됩니다.
- name: Build with Maven
run: mvn -B package --file pom.xml
- name : add application-secret
run : touch ./src/main/resources/application-secret.properties &&
echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.properties
1. 겪었던 문제점 : application.yml, properties의 내용 문제
문제
application.yml 이나 properties에는 기본적으로 DB의 정보나 다른 연결되는 여러 주소 정보를 가지고 있습니다. 하지만 이것을 함부로 github에 올리게 되면 보안적으로 큰 이슈가 발생할 수 있습니다.
솔루션
github에서는 setting -> secrets and variables -> actions에 시크릿 키를 추가 할 수 있는 기능이 있습니다. 하지만 actions에 시크릿 키를 추가할 때 yml 파일 형식을 지원하지 않는데 어떻게 추가를 하는지 의문을 제기할 수 있지만 springboot는 똑똑해서 그런지 yml과 properties를 가리지 않고 내용을 넣을 수 있습니다.
우선 기본 application.yml에 properties-secret을 include를 시키지만 github에 secret은 올라가지 않기 때문에 actions에 APPLICATION_SECRET을 추가한 후에
위와 같이 변수를 등록하면 maven 프로젝트를 빌드할 때 APPLICATION_SECRET의 내용이 application-secret.properies에 들어가 빌드가 무사히 실행됩니다.
주의사항
빌드 밑에 add application-secret 추가하시면 빌드 안됩니다.
이렇게 해놓고 왜안되지 하고 있었음........