【Bicep入門 #8】CICDパイプライン変更 / 自作Bicepテンプレートの自動展開

この記事の内容

  • GitHub Actionsを使ったBicepテンプレートのCI/CDパイプラインを構築します
  • これまで手動で実行していたBicepデプロイを、コミットをトリガーに自動実行できるよう変更します
  • サブスクリプションレベルのスコープでのデプロイ方法を紹介します
  • GitHub ActionsワークフローファイルへのBicepデプロイコマンドの組み込み手順を解説します
  • 実際にコミットしてパイプラインが動作することを確認します

はじめに

前回までのシリーズでは、Bicepテンプレートを使ってAzureリソースをデプロイする方法を紹介してきました。今回はその流れを発展させ、GitHub Actionsを使ったCI/CDパイプラインにBicepデプロイを組み込み、コードをコミットするだけでリソースが自動展開される環境を構築していきます。


CI/CDパイプラインへの組み込み方針

これまではazコマンドをローカルで手動実行してリソースグループを作成したり、Bicepテンプレートを展開したりしていました。今回はその操作をGitHub Actionsに移し、コミットが行われたら自動的にデプロイが実行される構成に変更します。

デプロイのスコープはサブスクリプションレベルを採用します。リソースグループの作成を含むすべての操作をBicepで完結させる点がポイントです。


ワークフローファイルの変更

リポジトリの.github/workflows/ディレクトリにあるワークフローファイルを編集します。今回の目標はシンプルで、mainブランチへのコミットをトリガーに、Bicepデプロイコマンドを実行するというものです。

ワークフローの大まかな構成は以下のとおりです。

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Azure Login
        uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}

      - name: Deploy Bicep
        run: |
          az deployment sub create \
            --location japaneast \
            --template-file main.bicep

ビルドステップはBicepデプロイには必須ではないため省略し、認証とデプロイの2ステップを中心に構成します。


認証の設定

GitHub ActionsからAzureに対して操作を行うには、認証情報の設定が必要です。リポジトリのSecretsAZURE_CREDENTIALSを登録し、ワークフローから参照できるようにします。

ワークフローを変更したあと、git commitしてgit pushを実行すると、GitHub ActionsがトリガーされてAzureへの認証とBicepデプロイが自動的に開始されます。


実行結果の確認

コミット後、GitHub Actionsの実行ログを確認すると、以下のような流れでデプロイが進んでいることが確認できます。

  1. 認証(Azure Login)が成功
  2. az deployment sub createコマンドが実行される
  3. リソースグループ(例:rg-bicep-samples)が作成される
  4. その配下に定義済みのリソースがデプロイされる

Azureポータルでも、対象のサブスクリプション内にリソースグループが作成されていることが確認できます。ローカルで手動実行したときと同じ流れで展開されていれば、パイプラインは正常に動作しています。


注意点

  • ワークフロー中の認証情報(Secrets)は必ずGitHubのリポジトリSettings → Secretsから設定してください。コードに直接書き込まないようにします。
  • main.bicepのファイルパスは、リポジトリ内の実際の配置に合わせて調整してください。
  • 今回は動作確認を優先した最小構成のワークフローです。本番運用ではpull_requestトリガーでのレビュープロセスや、環境ごとのデプロイ分岐なども検討してください。

まとめ

今回は、これまで手動で実行していたBicepデプロイをGitHub Actionsに組み込み、CI/CD環境を構築しました。

  • サブスクリプションレベルのスコープでデプロイすることで、リソースグループの作成からリソース展開までをBicep一本で管理できます
  • git pushをトリガーにしてデプロイが自動実行されるため、手動ミスの防止と作業効率の向上が期待できます
  • GitHub Actionsのログで実行状況を確認でき、Azureポータルでもリソースの作成が確認できます

BicepとCI/CDパイプラインを組み合わせることで、Infrastructure as Codeの運用をより実践的な形に近づけることができます。次回以降もBicepの活用方法を引き続き紹介していきます。