[CI] Github Action local property 처리

1 분 소요

앞 게시글에서 깃허브 액션을 달아보았다. 이번 게시글에서는 local property로 인해 발생하는 오류를 어떻게 해결하는지를 다룰 것이다.

👩🏻‍💻 Secrets

깃허브 액션을 통해 빌드를 하거나 테스트를 할 때, 프로젝트 안에서 local property를 사용하면 해당 값을 찾을 수 없다는 오류가 발생한다.

필자는 서버 url과 같은 값을 안드로이드 프로젝트의 local.properties 파일에 저장해두었고, 해당 파일은 버전 간리에서 제외가 되어 깃허브에 올라가지 않는다. 따라서 해당 값을 직접 설정해주어야 빌드나 테스트 시 오류가 발생하는 것을 막을 수 있다.

🤔 설정 방법

깃허브 프로젝트 -> settings -> secrets and variables(actions) -> new repository secret

다음 과정을 통해 key, value를 설정할 수 있다.

이를 설정하는 방법 타블로그에서 자세히 다루고 있으니 참고하기를 바란다!

🤔 활용 방법

  • 접근
      $\{\{ secrets.ATT_BASE_URL }} # \제외하기
    

    이렇게 가져온 secret 값을 활용해 local.properties 파일을 생성해주어야 한다. 파일의 이름은 local property가 저장된 파일 이름과 같게 설정해야 한다.

  • 파일 생성
        - name: generate local property
        run: |
          echo ATT_BASE_URL=\"$ATT_BASE_URL\" >> local.properties
          echo TMP_ACCESS_TOKEN=\"$TMP_ACCESS_TOKEN\" >> local.properties
            
        env:
          ATT_BASE_URL: $\{\{ secrets.ATT_BASE_URL }} # \제외하기
          TMP_ACCESS_TOKEN: $\{\{ secrets.TMP_ACCESS_TOKEN }} # \제외하기
    

    여기서 >>>는 다른 역할을 한다.

    • 같은 이름의 파일이 존재하는지 확인한다. 없다면 새로 생성!
    • 파일이 있다면 덮어쓰기? 추가하기?
      • >>는 기존 파일에 새로운 내용 추가
      • >는 새로운 파일로 덮어쓰기
  • 빌드 및 테스트 진행 파일에 secret 값을 쓰는 것은 한 번만 진행하면 된다. 위와 같이 진행했다면 이제 빌드, 테스트 등은 별도의 secret을 정의해줄 필요 없이 그냥 진행하면 된다.


📃참고

댓글남기기