😸
「RustとWebAssemblyによるゲーム開発」のGithubActionsのビルド時間を4分から2分に削ったメモ
概要
RustとWebAssemblyによるゲーム開発のデプロイについてGitHub Actionsが古かったのでRustにおけるGitHub Actionsベストプラクティスにならって修正したメモ
問題点
本に記載されているままのActionsは最終更新が5年前のコードで、
permissionのエラーなど出ていた*。あと実行に4分ほどかかってストレス。
actions-rs/install@v0.1.2
...
Error: Resource not accessible by integration
対応
actions-rsの廃止対応後のソースコードを下記に示す
.github/workflows/build.yml
on:
push:
branches:
- main
name: build
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.7
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
target: wasm32-unknown-unknown
- uses: taiki-e/install-action@wasm-pack
- name: Annotate commit with clippy warnings
uses: giraffate/clippy-action@v1
with:
reporter: 'github-pr-review'
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v4.0.2
with:
node-version: '20.15.0'
- run: npm install
- run: npm test
- run: npm run build
- name: Deploy to Netlify
uses: nwtgck/actions-netlify@v3.0.0
with:
publish-dir: './dist'
production-branch: main
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy-message: "Deploy from GitHub Actions"
enable-pull-request-comment: true
enable-commit-comment: true
overwrites-pull-request-comment: true
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 1
無事、NETLIFYにデプロイできたことを確認した。
実行時間は1m57sだった。
履歴
ワークフロー修正時点のコード
3章ゲームループ作成時点のコード
3章 RHBをキーボードで動かす 1m54s
4章 終了時点 3m7s
5章 終了時点 4m
6章 終了時点 1m47s
7章 終了時点 1m54s
8章 終了時点 1m49s
最低限スマホで動かせるように 1m50s
Discussion