CI/CD는 Github Actions가 특정 지점에 릴리즈될 때만 수행됩니다.

제목과 같다.
나는 그다지 예쁘지 않다고 생각한다. 좋은 방법을 아는 사람이 있으면 나에게 말해라.

전제 조건


검증 환경과 공식 환경이 존재하는데 각각 Staging 지점과main 지점에 대응한다.
  • Staging 분기는 병합 후 CI/CD를 실행합니다.
  • main 분기는 수동으로 하고 싶은데, Release 관리를 잊지 않기 위해 Release 발매 후 실행한 <-이번에는 여기 사연입니다.
  • 하고 싶은 일


    Giithub의 Release에서만 특정 지점에서 발행되는 경우
    Github 작업 수행
    그러나 인원 오류로 발행지의 지점(staging 등)이 잘못된 경우 CI를 실행하지 않기를 바랍니다.

    설정 방법

    name: リリースタグがついたときにデプロイする
    on:
      release:
        types:
          - released
    
    jobs:
      build_and_deploy:
        runs-on: ubuntu-latest
        # mainにリリースタグがついたときだけ、、はこれではできなかった
        #if: github.ref == 'refs/heads/main'
        steps:
          - uses: actions/checkout@v2
          - run: git fetch --all
          # mainブランチ以外でタグが発行されたら失敗させる
          - run: diff <(git rev-parse HEAD) <(git rev-parse origin/main) && exit 0 || (echo "mainブランチではないためデプロイしません"; exit 1)
          - run: (デプロイ)
    
    처음에는 리뷰 출력if을 사용하려고 했지만 라벨이 붙었을 때의Giithub 활동에서ref가 라벨명으로 바뀌어 제대로 작동하지 못했다
    그러므로
  • stepsgit fetch --all에서 분기 정보 끌어내기
  • 라벨이 달린 제출 해시와main 지점의 제출 해시가 일치하지 않으면 종료 코드 1로 종료하고 다음 단계를 진행하지 않습니다
  • 이런 형식으로 하고 싶은 일이 이루어졌다.
    하지만 더 쉬운 방법이 있을 것 같아...(그냥 놓쳤나 봐)

    좋은 웹페이지 즐겨찾기