手順
ワークフローの設定(コード管理できるもの)とGitHubのUI上から設定するものに分けて考える
ワークフローの設定
例として貼り付けますが、ここを参考にするなど自分の環境に合わせカスタマイズしてください。
name: exec-tests
on:
push:
jobs:
status-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ inputs.node-version }}
uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Get Cache Dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install Dependencies
run: npm ci
- name: Create avif images dir
run: mkdir tmp
- name: Build
run: npm run build
env:
NODE_OPTIONS: '--max_old_space_size=4096'
- name: Check by linter
run: npm run lint
- name: Check by TypeScript Compiler
run: npm run typecheck
- name: Run Tests
run: npm run test
リポジトリ(Web上から)の設定
以下の画面から編集
mainブランチの保護をするため、「main」と入力。
「Require status checks to pass before merging」にチェックを入れ、検索窓から「status-check」を入力、選択。
ここまで設定できると、以下のような画面で表示できる。
この設定だと警告が出るがマージはぽちぽちとクリックすればできてしまうので、「Do not allow bypassing the above settings」の設定もしておく。
これでマージするにはコードの変更を余儀なくされる。
余談
意図通りいかなかったこと
npm ci --ignore-scripts
コマンドを使って依存関係のインストールが爆速になるかと思ったら、ビルド時に画像フォーマットの変換に使っているsharpを対象に以下のエラーが出た。
Error:
Something went wrong installing the "sharp" module Cannot find module '../build/Release/sharp-linux-x64.node' Require stack: /home/runner/work/ikmnjrd.github.io/ikmnjrd.github.io/node_modules/sharp/lib/sharp.js
そのため、$ npm ci
とした。