😸

「RustとWebAssemblyによるゲーム開発」のGithubActionsのビルド時間を4分から2分に削ったメモ

2024/07/06に公開

概要

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