Coding History

git hub action (CI / CD)

BlackBirdIT 2024. 11. 7. 13:17

fly.io에 배포하는 것 까지 해봤었는데 무중단 CI / CD 를 기본으로 깔고 간다.

그러니까 서버 점검 등을 위해서 사이트를 정지시켜놓을 필요가 없다는 것.

근데 이걸 git에 push 했을 시에 자동으로 fly 서버를 갱신할 수 있게 하는 것이 있다고 한다.

그게 바로 git action인데. git branch에 특정 이벤트가 생길시 작동하게 설정을 할 수 있다.


일단 깃 리포지터리에서 action 설정을 이렇게 해주자.

save 해주고.

이제 git 에서 Secret을 추가해줘야되는데,

본인 깃 리포지터리에서 설정해주고. 여기 넣을 토큰 키 값을

fly.io에서 발급 받아서 추가.

여기다가 복붙.

여기 파일 체크한번 해주고.

# See https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/

name: Fly Deploy
on:
  push:
    paths:
      - settings.gradle
      - build.gradle
      - src/**
      - fly.toml
      - Dockerfile
      - .github/workflows/deploy.yml
    branches:
      - master
jobs:
  deploy:
    name: Deploy app
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: application-secret.yml 생성
        env:
          APPLICATION_SECRET: ${{ secrets.APPLICATION_SECRET_YML }}
        run: echo "$APPLICATION_SECRET" > src/main/resources/application-secret.yml
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

전문은 이렇다. 나는 이 workflows가 추가되니까 git의 토큰도 필요해서(맥이라서 빡빡한건가?) 여튼 그것도 추가해서 push 해줬다.

그렇게 푸쉬하면 이제

이게 기존 메인 화면이고,

이게 이제 git push시에 바로 재배포 된 화면

그러니까 이제 git의 master branch에 푸쉬만 하면 바로 재배포 되는 개쪄는 자동화임.

action 탭에서 진행된 것들 확인할 수 있고 진행중이라면 진행중인 것, 그리고 실패 성공 상태까지 다 확인 가능함.

아 그리고 secret의 내용을 바꾸고 싶다면, 아까 설정했던 Action Secret에서 수정을 해야지 적용됨. 왜? secret의 코드는 외부로 나가면 안되니까 gitignore처리가 되어있어서 저기 직접 주입해놨으니까 저길 만져야함.

아무튼 이렇게 일단 끝!