はじめに
今年の5月頃にBlazor WebAssemblyで開発したマークシートシステム Mark2をGitHub ActionsでビルドしてGitHub Pagesにデプロイするようにしました。その時のメモが以下になります。
それから半年ほどが過ぎ、Mark2を.NET 8に対応させました。最初はdotnet-version
を8.0.x
に変更しただけだったのですが、uses
で指定しているアクションもアップデートがあるかなと調べてみました。
アクションのアップデートを確認
以下のリポジトリを確認すると、2023年5月時点で作成したMark2のGitHub Actionsのアクションは1つずつメジャーバージョンが上がっていました。
アクションを更新
アクションのメジャーバージョンアップを反映して、Mark2のGitHub Actionsのアクションを以下のように更新しました。
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秒となって、ビルド時間が短縮されていました。ビルド時間はいろいろな条件で変動するので、単発の実行時間の比較は妥当ではないと思いますが、ご参考まで。
アクションの更新の確認を自動化
今回は手動でアクションの更新を確認して、その更新を反映させました。アクションの更新確認を自動化する方法はあるだろうと思って調べたら、Dependabotでそれができるようです。
Dependabotの設定ファイルを作成しました。
# Set update schedule for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
おわりに
今回の作業ではDependabotを利用してGitHub Actionsのアクションの更新確認を自動化する設定をしました。アクションの更新確認は普段の開発では意識しづらい部分でもあるので、それを自動化することができてよかったです。