1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Github Actions】Self Hosted Runnerで無料のCI/CD環境を作る

1
Posted at

はじめに

今回はDockerでサクッとSelf-Hosted-Runnerを作ってGithub Actionsと連携するところまでやります。

なぜ、Self Hosted Runnerを使うのか?という話ですが、
Github Actionsでは、プライベートリポジトリでSaaS形態のRunnerを利用する場合に
以下のような制約があります。(※フリープランの個人の場合)

  • 無料枠:2000分/月
  • ストレージ;500MB

そこでローカル環境にSelf-Hosted Runnerを構築することで、
プライベートリポジトリに対して無料でGithub Actionsが実行し放題になる訳です!
またSelf-Hosted-Runnerの場合は、独自のカスタマイズも可能になになります。

実行環境

  • OS;macOS
  • コンテナ環境:DockerDesktop

コンテナで作るので、OSはWindowsでも構いません。

構築手順

今回はmyoung34さんがRunnerのイメージを作ってくださっているので、使わせていただきます!

事前準備として、Githubのリポジトリの画面からACCESS_TOKENを取得しておきます。

RUNNER_TOKENでも良さげだが、有効期限が短かったり、更新対応が必要だったりするみたいなので、今回はACCESS_TOKENを使用することにしました。

1.docker-compose.yamlの作成

RUNNER_NAMEやLABELSは、ご自身が識別しやすい名前にしてください。

docker-compose
version: '2.3'

services:
  worker:
    image: myoung34/github-runner:latest
    environment:
      REPO_URL: https://github.com/example/repo
      RUNNER_NAME: example-name         # 任意のRunner名
      ACCESS_TOKEN: ghp_XXXXXXXXX
      RUNNER_WORKDIR: /tmp/runner/work
      RUNNER_SCOPE: repo
      LABELS: my-runner                 # 任意のラベル名
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./tmp/runner:/tmp/runner
      - ./runner/data:/runner/data       # データの永続化が必要な場合のみ

ちょっとバージョン2.3は気になりますが、大体はsampleで書かれているやつを使ってます。
必要に応じて書き換えてください。

2.docker composeの実行

コンテナ実行コマンド

docker compose up -d

ログを確認コマンド

docker compose logs

ログを確認して「√ Connected to GitHub」と出ていれば、Githubとの連携はできています。
image.png

GithubのリポジトリからActions > Runners > Self-hosted runnersを確認して、
以下のようにRunnerが追加されていればOKです。

image.png
(docker-compose.yamlと、RUNNER_NAMEと、LABELSは変えているので気にしないでください。)

さいごに

Self-hosted runnerを構築するのは、意外と手間がかからないので是非試してみてください。
これでプライベートリポジトリでも、Github Actionsを無料でぶん回せます!

あとはワークフローのYAMLファイルを作れば、簡単に実行できます。

個人的にはワークフローのruns-onでRunnerを実行するときに、LABELSを設定していた方が指定しやすいので、設定することをオススメします。

気が向けば、RunnerにAWS CLIをインストールしてコンテナイメージをECRに登録する記事とかを書こうかなと思います。

この記事がどなたかの参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?