💡

GitHubActions で「何実行したっけ?」が分かりやすくなった話

2023/06/25に公開

はじめに

普段terraformを使用し、GitHubActions上からterraform plan,terrform applyをしております。その際workflow_dispatchから「どの環境」「どのリソース」に対して実行するのかを選択しますが、実行後に「何実行したっけ?」「操作ミス無いかな?」を確認したいケースが多々ありました。その際に少しでも簡単にこれらを確認するために行ったことを記載します。「ここにも変数を適用できるんだ笑」と発見した小ネタです。

前提

前提となる知識は下記を参照してください。

GitHubAction

GitHubActions

GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のトリアージを希望どおりに機能させます。

run-name

run-name

このワークフローのトリガーを指定します。 この例では、push イベントを使用しているため、変更がリポジトリにプッシュされるか、pull request がマージされるたびに、ワークフロー実行がトリガーされます。 これは、すべてのブランチへのプッシュによってトリガーされます。特定のブランチ、パス、またはタブへのプッシュでのみ実行される構文の例については、「GitHub Actions のワークフロー構文」を参照してください。

やったこと

GitHubActionsにてWorkflowをトリガーとするイベントを発火した際に、run-name属性を指定してWorkflow名を詳細にします。更にjob名にworkflow_dispatchで選択した項目も表示させます。

実際のコード

簡単のために用意したものですので、stepsで走らせているものは無視してください。

test.yaml
name: terraform plan

run-name: terraform plan [${{ github.event.inputs.environment }}/${{ github.event.inputs.resource }}]

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Target Environment'
        required: true
        default: 'stg'
        type: choice
        options:
          - prd
          - stg
          - dev
      resource:
        description: 'Target Resource'
        required: true
        type: choice
        options:
          - database
          - ecs
          - network

jobs:
  apply:
    runs-on: ubuntu-22.04
    name: terraform plan [${{ github.event.inputs.environment }}/${{ github.event.inputs.resource }}]
    steps:
      - run: echo "test"

どうなったか

workflow_dispatchからEnvironment, Resourceを選択し、実行します。

Before

  • terraform planのみが一覧で表示される状態でした。

  • 詳細に遷移してもパッと見よく分からない状態でした。

After

  • 想定したworkflowを選択し一覧を表示しただけで、どのEnv, Resourceを選択したかが分かるようになります👏
    ※ [prd/database] などの部分

  • 一つ一つのjobを確認するとどの環境に何を適用したのかが分かるようになります👏
    ※ [prd/database] の部分

最後に

run-nameという属性が追加されていたのですね...
ここに変数を適用できることも知りませんでした...

https://github.blog/changelog/2022-09-26-github-actions-dynamic-names-for-workflow-runs/

jobsのnameに変数を適用することもできたのですね...

簡単なことですが、入れておくと便利な場合があるかもなと思いました!👏

Discussion