3
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?

More than 1 year has passed since last update.

CircleCI RunnerをUIから簡単に使えるか試してみた!

Last updated at Posted at 2022-07-26

皆様こんにちは!CircleCIカスタマーサクセスマネージャーの小島です。
前回の記事では挫折と苦労を繰り返しながら、CircleCI RunnerをCLIを利用してインストールをしてみました。
沢山のユーザーの方々からも、インストールの手順を簡素化してほしいというリクエストがあり、、、
この度、CircleCI Runnerが5分以内にUIからダウンロードできるようになったという製品リリースが発表されました!!!
そこで、実際に5分以内に完了できるか挑戦してみました!

参考URL:
https://circleci.com/blog/install-runner-in-five-minutes/#:~:text=Activate%20the%20Self%2DHosted%20Runner,Accept%20the%20Runner%20Terms

CircleCIランナーをUI上から利用設定

  • CircleCI Web UI →左のメニュータブの中にあるOrganization Settingsへ飛ぶ

  • Self-Hosted RunnersのタブをクリックしてCircleCI Runner Termsに合意する
    スクリーンショット 2022-07-04 9.17.44 (1).png

合意するとWeb UIの左メニューの中にSelf-Hosted Runnersが追加されるのでそこでリソースクラスを作成していきます。

NamespaceとResource Classラベルの指定

Namespaceは自分のorg名などの分かりやすい名前を指定し、1つのorgに1つのNamespaceしか作成できないので、毎回リソースクラスを作成する時は同じNamespaceを使用します。
デフォルトではorg名がNamespaceの設定欄に入っているので、もう既に既存のNamespaceを作っている方は、そちらに変更してください。
スクリーンショット 2022-07-04 9.19.31.png

Runnerを使用しているマシーンにインストールリソースクラスを作成し保存すると、Token Keyが生成されるので、コピーして保存しておいてください。
スクリーンショット 2022-07-04 9.28.11.png

ここまでは本当に数分で完了いたしました!!!
この次のステップからをできれば簡素化してほしかったです。
結局CLIを使用して自身のマシーンにLaunch Agentをインストールしなければなりません。。
各プラットフォームにローンチエージェントをインストールToken Keyが発行されたページをスクロールすると、各プラットフォームへのインストール手順が記載されております。

ローンチエージェントシェルスクリプトのダウンロード

ターミナルからスクリプトをアクセスしやすい場所へダウンロードし、その場所からmacOS向けのローンチエージェントをインストールしていきます。

# For macOS x86_64:
export platform=darwin/amd64 && sh ./download-launch-agent.sh

# For macOS M1:
export platform=darwin/arm64 && sh ./download-launch-agent.sh

ランナー用のコンフィグファイルを作成

前回と同様にlaunch-agent-config.yamlを作成する必要があります。
中身は以下のテンプレートをもとに、AUTH_TOKEN, RUNNER_NAME, USERNAMEをご自身の設定に変更してください。
AUTH_TOKENはリソースクラスを作成した際に表示されるものをコピーし、ここに入れ替えてください。

api:
  auth_token: AUTH_TOKEN

runner:
  name: RUNNER_NAME
  command_prefix : ["sudo", "-niHu", "USERNAME", "--"]
  working_directory: /var/opt/circleci/workdir
  cleanup_working_directory: true

logging:
  file: /Library/Logs/com.circleci.runner.log

CircleCI Runner コンフィグレーションのインストール

CircleCIランナー設定を格納するディレクトリをrootで作成します。

sudo mkdir -p "/Library/Preferences/com.circleci.runner"

先に作成した launch-agent-config.yaml をディレクトリにコピーし、パーミッションを 600 に変更します。

sudo cp "launch-agent-config.yaml" "/Library/Preferences/com.circleci.runner/launch-agent-config.yaml"
sudo chmod 600 "/Library/Preferences/com.circleci.runner/launch-agent-config.yaml"

launched.plistのインストール

Library/LaunchDaemons/com.circleci.runner.plist を root の所有に設定し、パーミッション 644 で作成します。

sudo touch /Library/LaunchDaemons/com.circleci.runner.plistsudo chown root: /Library/LaunchDaemons/com.circleci.runner.plistsudo chmod 644 /Library/LaunchDaemons/com.circleci.runner.plist

以下を新しい /Library/LaunchDaemons/com.circleci.runner.plist ファイルにコピーしてください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.circleci.runner</string>

        <key>Program</key>
        <string>/opt/circleci/circleci-launch-agent</string>

        <key>ProgramArguments</key>
        <array>
            <string>circleci-launch-agent</string>
            <string>--config</string>
            <string>/Library/Preferences/com.circleci.runner/launch-agent-config.yaml</string>
        </array>

        <key>RunAtLoad</key>
        <true/>

        <!-- The agent needs to run at all times -->
        <key>KeepAlive</key>
        <true/>

        <!-- This prevents macOS from limiting the resource usage of the agent -->
        <key>ProcessType</key>
        <string>Interactive</string>

        <!-- Increase the frequency of restarting the agent on failure, or post-update -->
        <key>ThrottleInterval</key>
        <integer>3</integer>

        <!-- Wait for 10 minutes for the agent to shut down (the agent itself waits for tasks to complete) -->
        <key>ExitTimeOut</key>
        <integer>600</integer>

        <!-- The agent uses its own logging and rotation to file -->
        <key>StandardOutPath</key>
        <string>/dev/null</string>
        <key>StandardErrorPath</key>
        <string>/dev/null</string>
    </dict>
</plist>

起動したサービスを有効化する

これで、サービスを読み込むことができます。

sudo launchctl load '/Library/LaunchDaemons/com.circleci.runner.plist'

CircleCIランナーを利用してビルドしてみる

Continueボタンを押すと、プロジェクトのconfig fileにRunnerを使用して作成したリソースクラスを使用するためにコードが表示されます。

スクリーンショット 2022-07-04 9.36.18.png

こちらをコピペしてプロジェクトを実行すればCircleCI Runnerを使用したビルドが無事に成功しました。
スクリーンショット 2022-07-15 17.23.38.png
スクリーンショット 2022-07-15 17.23.45.png

まとめ

まだまだ初心者の私が、CircleCI Runnerのインストールを5分で完了させることは難しかったです。
リソースクラスの作成までは簡単ですが、ローンチエージェントのインストール手順などに戸惑い予想以上に時間はかかりましたが、
前回よりドキュメントがわかりやすくなっているため比較的早くインストールは完了できました。
もう既にインストールされている方は、すぐに新しいリソースクラスを作成してさらにランナーでのビルドをぜひ増やしてみてください!

3
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
3
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?