koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

GitHubのEnvironmentsとAzure Static Web Appsを関連付けてみる

GitHubEnvironmentsという機能があって、環境毎にワークフローのルールを設けたり、認証情報(Secrets)を管理できたりして便利らしい。

が、そういう便利さより単に環境毎のデプロイ情報がリポジトリに表示されるのが良い。

f:id:koudenpa:20210803012111p:plain
なんか出るだけで楽しい

何か良いのでAzure Static Web Appsにデプロイしているサイトの情報を出したいと思ったので出した。

関連付ける

Static Web Apps はデフォルトでPull Request毎に専用の動作確認用環境がデプロイされる。そのため、単純に環境を1つ用意してデプロイジョブと関連付けると、Pull Request毎のデプロイと関連づいてしまう。

これを回避するにはメインのデプロイ先へのデプロイジョブとPull Request毎のデプロイジョブを分けて、メインのデプロイ先のジョブとだけ環境を関連付ける。環境を複数用意して、メインのデプロイ先のジョブとPull Request毎のデプロイジョブとで関連付ける環境を分けるなどの手法がありそうだった。

今回は後者でやってみた。

# 前略
jobs:
  build_and_deploy_job:
    if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
    runs-on: ubuntu-latest
    name: Build and Deploy Job
    environment:
      # メインのブランチへの push とそれ以外で関連付ける環境を分ける
      name: ${{ (github.event_name == 'push' && 'SRC#Help') || 'SRC#Help dev' }}
      url: ${{ (github.event_name == 'push' && 'https://srch.7474.jp/') || steps.builddeploy.outputs.static_web_app_url }}
    steps:
# 後略

SRC/azure-static-web-apps-yellow-pebble-0ddb1c400.yml at e26e233ff683283712afdabc57910fa213b3ca2a · 7474/SRC · GitHub

これで各環境にいい感じにデプロイ先のURLが関連づいた。

f:id:koudenpa:20210803013535p:plain