はじめに
この記事では、GitHub Actions で Environment に動的なリリース URL を設定する方法を説明します。
背景
GitHub Actions には Environment という環境を定義する機能があります。
デプロイに環境を使用する - GitHub
例えば、以下のような環境を設定しておくことでリリース先を切り替えることができます。(名前は任意のものを設定することができます。)
- 本番環境(Production)
- ステージング環境(Staging)
- テスト環境(Testing)
- 開発環境(Development)
その中でリリースした後に、リリース先の URL を表示する機能があります。
これが環境に対して固定で1つ決まっている場合は問題ないのですが、リリースのステップの中で動的に決まる場合、どのように表示すればよいのかわからなかったのでやり方を残しておきます。
環境に対して1つの場合は以下のようにすることで URL の設定が可能です。
environment:
name: production
url: https://example.com
やり方
やり方はシンプルで、URL が確定した際にステップで output に値を保存しておき、その output を environment の URL に設定することで可能でした。
サンプルの Yaml を以下に記載します。ステップに参照用の ID を付与する必要があります。output を参照する際のフォーマットは steps.[step_id].outputs.[output_name]
となります。
environment:
name: development
url: ${{ steps.get_release_url.outputs.release_url }}
steps:
- name: Set release url
id: get_release_url
run: echo release_url=https://xxx.example.com >> $GITHUB_OUTPUT
結論
GitHub Actions の Environment で動的にリリースした URL を設定する方法は、リリースのステップで output に値を保存し、その output 名を environment の URL に設定することで可能です。