GitHub Action
GitHub ActionとはGitHubから直接CI/CD、テスト、ビルド等をできるようにするGitHubのサービスであり、コードに修正があった時、素早くサーバやクライアントにコードのデプロイをしてくれる。
デプロイやビルド作業にはサーバが必要となるが、GitHubの無料枠を使うが、今回のサービスはRaspberry PIのBluetoothを利用するため、直接ラズパイにDockerイメージをデプロイする必要があった。
Raspberry PIにGitHub Self-hosted Runnerをインストール
GitHubのSettingsのActions→Runnersを開くと、GitHub Actionsをインストールするためのコマンドが表示される。
そのままコピペして実行したらGitHub ActionのSelf-hosted Runnerが追加されるはずだが、config途中WRITE ERROR: The HTTP request timed out after 00:01:40.
とエラーが発生し、Timeoutしてしまう。
IPv6 Issue
GitHub Issueを調べてみたところ、config.shの途中で進まなくなるissueがあり、IPv6を消したら問題なくセットアップが完了したという報告があったので、ラズパイのIPv6をオフーにしたら解決できた。
Raspberry PIのIPv6をoffにする
/boot/cmdline.txt
のrootwait
の前にipv6.disable=1
を追記する。
sudo shutdown -r 0
でラズパイを再起動する。
ip a | grep inet6
で何も表示されなくなったことを確認したら設定完了。
再びconfig.shを実行
config.shが正常に終了し、StatusがIdleになっていることが確認できた。
サービスの登録
サービスとして登録しないと、毎回run.shを実行しないといけないのでサービスとして登録し自動的にGitHub Actionが動くようにする。
次のコマンドを打ち込んでサービスを登録する。
sudo ./svc.sh install
その後、サービスを起動する。
sudo ./svc.sh start
サービスの確認はsudo ./svc.sh status
でできる。
最後に、再起動をしてもちゃんとGitHub上にidleになっているか確認できれば完了。
注意事項
14日以上Runnerが起動しなかった場合、自動的に登録が消されるため、再登録を行う必要がある。