銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

GitHub ActionsでAzure Web Appsにデプロイするときに同時に環境変数を書き換えたい

とりあえず実現できたのですが、もっとうまくある方法があるのではと思っています。

GitHub Actionsを使ってAzure Web Appにデプロイしたい場合、ひとまずazure/webapps-deploy@v3を使って次のように書けます。

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v3
        with:
          app-name: 'ghu-demo-webapp'
          slot-name: 'Production'
          package: .

github.com

このとき同時にWeb Appsの環境変数も書き換えたい時があります。具体的にはデプロイしたコードのコミットハッシュを記録しておきたい、といった目的です。探した限り、webapps-deployのアクションでは環境変数も更新する機能はない模様で、ひとまずAzure CLIを実行するアクションを使ってデプロイ後に次のアクションを実行するように定義しました。METADATA_COMMITという名前の環境変数にコミットハッシュを値としたものを追加(更新)します。

      - name: Update Env Vars
        id: update-envvar
        uses: Azure/cli@v2.1.0
        with:
          inlineScript: "az webapp config appsettings set -g ghu-demo -n ghu-demo-webapp --settings METADATA_COMMIT=${{ github.sha }}"

これで目的は果たせるのですが、アプリのデプロイと環境変数の更新を連続して別々に実行するのがちょっと非効率という気がしています。そもそも同時に更新する方法自体ないのかもしれないですが、そこも確認できず。 ひとまず調査した記録して残しておきました。