自宅に余っているAndroid端末をGitHub Actionsのself-hosted Runnerとして活用してみた。
機種変更などで余ったAndroid端末の使い道を考えていたら、「Androidってカーネル部分Linuxだし、GitHub ActionsのRunnerとして使えるんじゃね?」と思いついたのでやってみました。
最初は、Android版のDockerって無いのかなぁと思って探していたのですが、もっと手軽そうなアプリを発見したので今回はそれを使います。
UserLAnd
今回利用したのは、UserLAndというアプリです。
Android端末上にLinux環境を作成できるアプリです。
Android端末上でvimなどのエディタを使いたい人の間では有名らしいです。(調べるまで知らなかった…)
このアプリはroot権限を取得しなくても実行できるので採用しました。
GooglePlay Storeからダウンロードできます。
アプリをインストール後、いくつかのOSを選択できるので今回はubuntuを選択しました。
また、今回はrunnerとして利用するだけなのでCUI環境があれば十分、ということでSSHで接続するように選択しました。
ubuntunのセットアップが完了したらあとは普通にubuntuとして使えます。(多少制限はあるらしい?)
最小構成のubuntuになっているみたいなので、
sudo apt update && sudo apt -y upgrade
した後で、この後に必要な最低限のツールをインストールしておきます。
sudo apt install git curl
GitHub Actions self-hosted Runner
事前に、uname
コマンドなどでCPUのアーキテクチャを調べておきます。
uname -m
今回利用した端末のアーキテクチャはarmv71
だったので32bitのArmアーキテクチャです。
runnerのインストール
公式のリリースページから自身の端末のアーキテクチャに合うものを利用してインストールする。
または、runnerを登録したいリポジトリの Settings > ActionsのページからOSとアーキテクチャを選んで出てくるコマンドを実行してインストールします。
最終的にRunnerを登録する際に、Settings > Actionsのページに表示されるトークン情報が必要になるので、Settings > Actionsのページの方が楽ですかね。
32bitのArmアーキテクチャの場合はこんな感じです。
# Create a folder
mkdir actions-runner && cd actions-runner
# Download the latest runner package
curl -O -L https://github.com/actions/runner/releases/download/v2.277.1/actions-runner-linux-arm-2.277.1.tar.gz
# Extract the installer
tar xzf ./actions-runner-linux-arm-2.277.1.tar.gz
バージョンは適宜変えて下さい。
解凍できたら足りない依存コマンド等を
./bin/installdependencies.sh
でインストールします。
インストールしたら
# Create the runner and start the configuration experience
./config.sh --url https://github.com/UserName/RepoName --token YOUR_REPO_TOKEN
でrunnerを登録します。
Settings > Actionsのページに表示されるコマンドですね。
あとは、
# Last step, run it!
./run.sh
でRunnerが待機状態になります。
あとは、github actions のymlファイルの runs-on: に self-hosted を指定してあげれば登録したrunnerを利用してくれます。
最後に
家に余っているAndroid端末を有効活用できる方法が見つかって幸せ。