2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 2

GitHub のデプロイメントのレビュー負荷を下げる方法

Posted at

GitHub の Environments を活用することで、ワークフロー実行前に デプロイメントのレビュー をすることができます。ワークフローのビルドパラメータ on.workflow_dispatch.inputs もレビューしたい場合は次のような一工夫が必要です。

例えば誤った環境にデプロイしていないかをレビューしたい時に役立ちます。

改善案

このように run-name${{ toJSON(github.event.inputs) }} を表示させることで、ビルドパラメータのレビューも手軽に出来るようになります。

image.png

name: deploy
+ run-name: Run by @${{ github.actor }} ${{ toJSON(github.event.inputs) }}
- run-name: Run by @${{ github.actor }}
on:
  workflow_dispatch:
    inputs:
      target:
        type: choice
        required: true
        options:
          - dev
          - stage
          - prod
      force-destroy:
        type: choice
        required: true
        options:
          - false
          - true

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: deployments
    steps:
      - run: deploy.sh

別解として、次のようにビルドパラメータをダンプをするジョブの追加も考えられますが、ワークフローの実行名に表示させた方が目立つので忘れずにレビューできます。

+ jobs:
+   dump:
+     steps:
+       - run: echo "${{ toJSON(github.event.inputs) }}"

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: deployments
    steps:
      - run: deploy.sh

もっと改善案(実行理由を書いてもらう)

実際に デプロイメントのレビュー を運用してみると、ワークフロー実行者のデプロイの意図が分からないと判断できない場面があります。この課題はワークフロー実行者に コメントを書いてもらうことで 解決できるかもしれません。

name: deploy
run-name: Run by @${{ github.actor }} ${{ toJSON(github.event.inputs) }}
on:
  workflow_dispatch:
    inputs:
      target:
        type: choice
        required: true
        options:
          - dev
          - stage
          - prod
+     reason:
+       description: 'デプロイの目的を書いてください'
+       type: string
+       required: true
+       default: 'デプロイの目的は、〜'

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: deployments
    steps:
      - run: true

こうすることでワークフロー実行時に必ずコメントを求めることができます。
image.png

コメントが長いとワークフロー一覧では尻切れになってしまいますが、
image.png

クリックして詳細画面からは次のようにコメントは最後まで表示され、実行者の意図とビルドパラメータが合っているかをレビューすることができます。
image.png

おわり

GitHub の Environments は環境ごとにシークレットを格納するだけでなく、レビューや対象ブランチの制限など、主にデプロイに必要な機能が備わっていて便利です。一方で通常のコードレビューと比較するとデプロイメントのレビューは機能が十分でなく、レビュアが判断に困る場面があります。今回はビルドパラメータと実行理由を表示させるちょっとした工夫で、レビュアの負荷を下げる取り組みをしました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?