kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Branch Deploy Action でプルリクエストの Approve なしでも例外的にデプロイできる Admins 設定

Branch Deploy Action (branch-deploy) には Admins という設定がある⚙️ Admins に管理者レベルの権限を持った GitHub アカウント名を指定すると,あくまで「例外的な運用として」Branch protection rule(ブランチ保護ルール)の「Require approvals」を無視してデプロイできるようになる.どういう感じの制御になるのか実際に確認してみた❗️

github.com

準備

README.md に以下のように書いてある.よって,Admins という設定を有効化する前に「Branch protection rule(ブランチ保護ルール)」「Require approvals」を有効化しておく✔️(今回は使い慣れた classic branch protection を使った)

It should be noted that if you do not have pull request approvals enabled in your branch protection rules, then this option will not make a difference either way

GitHub Actions ワークフロー

基本的には以下の記事に載せた GitHub Actions ワークフロー(Branch Deploy Action で Terraform をデプロイする)と同じにしつつ,Branch Deploy Action (branch-deploy) のパラメータとして admins: kakakakakku を追加した.

kakakakakku.hatenablog.com

GitHub Actions ワークフローの一部を抜粋して載せておく📝

jobs:
  deploy:
    name: deploy
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ github.token }}
      GH_TOKEN: ${{ github.token }}
    if: ${{ github.event.issue.pull_request }}

    steps:
      - name: branch-deploy
        id: branch-deploy
        uses: github/branch-deploy@v10.4.1
        with:
          noop_trigger: ".plan"
          trigger: ".apply"
          admins: kakakakakku

動作確認

admins: kakakakakku 設定なし🙅

プルリクエストを作って Approve なし(レビュー未済)だと .plan は実行できるけど .apply⚠️ Cannot proceed with deployment というエラーになった.よって,基本的には Approve をもらってから .apply を実行する流れになる.

admins: kakakakakku 設定あり🙆‍♂️

もう一度プルリクエストを作って Approve なし(レビュー未済)のまま .apply を実行する.一般アカウントだと,同じく .plan は実行できるけど .apply⚠️ Cannot proceed with deployment というエラーになった.そして管理者アカウント (@kakakakakku) だと,例外的に .plan.apply も実行できた.

まとめ

実際に確認してみて Admins という設定のイメージを理解できた👌