背景
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だとこんなメッセージは出ないのに。。。あくまでも簡易なものしか対応してないのかなぁ。。。。