-
github action 환경 변수 설정project/main 2023. 3. 19. 23:18
GitHup에 기능구현한 파일을 merge하면 우리가 사용하고 있는 AWS의 S3에 자동으로 정적 배포가 되게 해놓았다. 그런데 배포된 서버의 주소를 하드 코딩하지 않고 .env 파일을 만들어 환경변수 설정을 하고 사용한다. 하지만 github에 push할 때는 .env파일이 포함되지 않는다. 즉, 환경변수의 값이 undefined가 되어 서버와 통신할 수 없게 된다. 전에 자동배포를 하면서 만든 client.yml을 수정해서 merge를 하게 되면 github action에서 미리 등록해둔 서버 url을 사용해 .env.production.local 파일을 만들고 환경변수를 설정하고 이 환경변수를 사용할 수 있게 하면 된다.
name: client on: pull_request: branches: - fe types: - closed
- branch fe에 pull-request를 날리고 날린 pull-request가 닫힌다면?
jobs: if_merged: if: github.event.pull_request.merged == true runs-on: ubuntu-latest
- merge가 일어난다면 ubuntu-latest 환경에서 실행된다.
- name: Generate Environment Variables File for Production run: | echo "REACT_APP_BASE_URL=$REACT_APP_BASE_URL" >> .env.production.local env: REACT_APP_BASE_URL: ${{ secrets.REACT_APP_BASE_URL }} working-directory: ./client
- ./client에서 .env.production.local 파일을 만들고 미리 github에 설정해둔 secrets을 가져와 환경변수를 설정한다.
- React를 사용하는 환경이라 환경변수는 REACT_APP_으로 시작해야된다.
전체 구조
//client.yml name: client on: pull_request: branches: - fe types: - closed jobs: if_merged: if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - run: | echo The PR was merged - name: Checkout source code. uses: actions/checkout@v3 - name: Generate Environment Variables File for Production run: | echo "REACT_APP_BASE_URL=$REACT_APP_BASE_URL" >> .env.production.local env: REACT_APP_BASE_URL: ${{ secrets.REACT_APP_BASE_URL }} working-directory: ./client - name: Install dependencies run: npm install --force working-directory: ./client - name: Build run: npm run build working-directory: ./client - name: SHOW AWS CLI VERSION run: | aws --version - name: Sync Bucket env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }} AWS_EC2_METADATA_DISABLED: true run: | aws s3 sync \ --region ap-northeast-2 \ build s3://seb42main001 \ --delete working-directory: ./client
'project > main' 카테고리의 다른 글
무한 스크롤 중복 데이터 에러 수정 (0) 2023.03.21 개발용 토큰 환경변수 지정, axios defalt 설정 (0) 2023.03.20 11일 차 (서버와 연결) (0) 2023.03.17 10일 차 (무한 스크롤 구현) (0) 2023.03.16 9일 차 (모달창 반응형 + 모달창 페이지 전환) (0) 2023.03.15