nhnacademy-aiot1-5 / study

공부한 내용을 기록하는 저장소입니다.
MIT License
0 stars 0 forks source link

api-service Github-Action에 올리기 위해 한 일들 #19

Open haedanui opened 6 months ago

haedanui commented 6 months ago

1. 겪었던 문제점 : application.yml, properties의 내용 문제

문제

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

이렇게 해놓고 왜안되지 하고 있었음........