背景

GitHub Actionsはデバッグがしにくいです。一発でActionsが動くことはなく、動かして、エラーがでるから直して、pushするというのを繰り返します。これがメンドです。

actというのがデバッグには良いとのことですが、ローカルのサーバーがUbuntuということもあって、なんならローカルで動かしてしまえばいいんじゃないかと思って試してみました。

手順

以下のリポジトリを参照して、インストールしました。

nektos/act: Run your GitHub Actions locally 🚀

インストール

curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

以下のメッセージが出力されて、インストールが完了します。

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
100  9886  100  9886    0     0  47304      0 --:--:-- --:--:-- --:--:-- 47301
nektos/act info checking GitHub for latest tag
nektos/act info found version: 0.2.33 for v0.2.33/Linux/x86_64
nektos/act info installed ./bin/act

インストールした時のディレクトリにbinができているので、そこから利用します。

bin/act -W .github/workflows/main.yml

エラーメッセージが出力されました。

[CI/deploy] ⭐ Run Main Install Theme
[CI/deploy]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/3] user= workdir=
| /var/run/act/workflow/3: line 2: yarn: command not found
[CI/deploy]   ❌  Failure - Main Install Theme
[CI/deploy] exitcode '127': command not found, please refer to https://github.com/nektos/act/issues/107 for more information
[CI/deploy] 🏁  Job failed
Error: Job 'deploy' failed

yarnがインストールされてないだろうということで、yamlに以下を追記。

        - name: Install Yarn
          run: npm install -g yarn

上記のエラーは出なくなったものの、以下のエラーが出ます。

[CI/deploy]   ✅  Success - Main Install Yarn
[CI/deploy] ⭐ Run Main Install Theme
[CI/deploy]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/4] user= workdir=
yarn install v1.22.19
warning package.json: License should be a valid SPDX license expression
info No lockfile found.
warning hugo-theme-luna@0.0.1: License should be a valid SPDX license expression
[1/4] Resolving packages...
warning cssnano > cssnano-preset-default > postcss-svgo > svgo > stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
error Command failed.
| Exit code: 128
| Command: git
| Arguments: ls-remote --tags --heads https://github.com/Ice-Hazymoon/jump.js
| Directory: /home/yamadatt/git/hugo-luna-photo/themes/hugo-theme-luna
| Output:
| fatal: not a git repository: /home/yamadatt/git/hugo-luna-photo/themes/hugo-theme-luna/../../.git/modules/themes/hugo-theme-luna
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
[CI/deploy]   ❌  Failure - Main Install Theme
[CI/deploy] exitcode '128': failure
[CI/deploy] 🏁  Job failed
Error: Job 'deploy' failed

gitリポジトリではないと、怒られています。

GitHub Actionsだとこんなメッセージは出ないのに。。。あくまでも簡易なものしか対応してないのかなぁ。。。。