LoginSignup
0
3

Blazor WebAssemblyのアプリをGitHub ActionsでビルドしてGitHub Pagesにデプロイ(2023年12月版)

Last updated at Posted at 2023-12-09

はじめに

今年の5月頃にBlazor WebAssemblyで開発したマークシートシステム Mark2をGitHub ActionsでビルドしてGitHub Pagesにデプロイするようにしました。その時のメモが以下になります。

それから半年ほどが過ぎ、Mark2を.NET 8に対応させました。最初はdotnet-version8.0.xに変更しただけだったのですが、usesで指定しているアクションもアップデートがあるかなと調べてみました。

アクションのアップデートを確認

以下のリポジトリを確認すると、2023年5月時点で作成したMark2のGitHub Actionsのアクションは1つずつメジャーバージョンが上がっていました。

アクションを更新

アクションのメジャーバージョンアップを反映して、Mark2のGitHub Actionsのアクションを以下のように更新しました。

.github/workflows/github-pages.yml
name: Deploy to GitHub Pages

on:
  push:
    branches: ["main"]

  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup Pages
        uses: actions/configure-pages@v4
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: 8.0.x
      - name: Install wasm-tools
        run: dotnet workload install wasm-tools
      - name: Publish
        run: dotnet publish Mark2.csproj -p:GHPages=true -p:GHPagesBase=/ -c:Release -o:publish
      - name: Upload Pages Artifact
        uses: actions/upload-pages-artifact@v2
        with:
          path: "publish/wwwroot"
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v3

ビルド結果

エラーは発生することなくデプロイが完了しました。

Mark2はAOTコンパイルを有効にしているため、通常のアプリよりもビルド時間が長くなっています。アクションをアップデートする前のビルド時間は17分26秒で、今回の作業でアクションをアップデートしたビルド時間は13分15秒となって、ビルド時間が短縮されていました。ビルド時間はいろいろな条件で変動するので、単発の実行時間の比較は妥当ではないと思いますが、ご参考まで。

runs.jpg

アクションの更新の確認を自動化

今回は手動でアクションの更新を確認して、その更新を反映させました。アクションの更新確認を自動化する方法はあるだろうと思って調べたら、Dependabotでそれができるようです。

Dependabotの設定ファイルを作成しました。

.github/dependabot.yml
# Set update schedule for GitHub Actions

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"

おわりに

今回の作業ではDependabotを利用してGitHub Actionsのアクションの更新確認を自動化する設定をしました。アクションの更新確認は普段の開発では意識しづらい部分でもあるので、それを自動化することができてよかったです。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3