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

Act で GitHub Actions をローカルで実行してみる

Last updated at Posted at 2024-07-18

やりたいこと

GitHub Actions で CI/CD のパイプラインを1から組むことがあり、その際に Act というローカルで GitHub Actions を実行できるツールを使ったので、その内容をまとめてみます。

Act とは

Act は GitHub で提供されている CI/CD のサービスをローカルで実行 (デバッグ) できるツール。特にパイプラインを1から組んでいく時に、修正して PUSH して、また修正して PUSH してというのを繰り返すのをローカルで実行することで、リモート側に PUSH せずとも動作を確認できる。GitHub Actions のすべての機能を再現はできないが、基本的な機能は再現できる。

  • 以降の手順は、MAC (M* Chip) での実行を前提とします
  • Docker を利用できる必要があります
    • Docker Desktop や Colima などを利用してください

インストール

以下コマンドでインストール。

brew install act

パイプラインの作成

テスト用に簡単なパイプラインを作成する。

./.github/workflows/test.yml
name: test
on:
    push:

jobs:
    test:
        name: test_job
        runs-on: ubuntu-latest

        steps:
            - name: first_step
              uses: actions/checkout@v4

            - name: second_step
              run: |
                  pwd
                  ls -a

            - name: third_step
              run: echo "Hello Act!"

# 実行
以下コマンドで実行できる。今回は条件に push を指定しているので、push で実行する。

act push

実行時に以下のようなエラーが出る場合は、

Error: failed to start container: Error response from daemon: error while creating mount source path '/Users/****/.colima/docker.sock': mkdir /Users/****/.colima/docker.sock: operation not supported

実行時に以下のオプションを指定する。

act push --container-daemon-socket -

また、WARNING として表示される以下が気になる場合は、

WARN  ⚠ You are using Apple M-series chip and you have not specified container architecture, you might encounter issues while running act. If so, try running it with '--container-architecture linux/amd64'.

メッセージに従い、実行時にオプションを指定する。

act push --container-architecture linux/amd64

オプションに指定するのが面倒な場合は、以下の設定ファイルを作成する。

~/.actrc
--container-daemon-socket -
--container-architecture linux/amd64

実行すると作成したパイプラインで定義した内容が出力されるはず!

ということで

Act を使って、GitHub Actions をローカルで実行する方法をまとめました。パイプラインの開発時に毎回 PUSH して動作確認するのは面倒ですしコミット履歴も増えてしまうので、極力 Act を使ってローカル実行するのが良いのかなと感じます (個人の好みの範疇ですが笑)。

以上です!

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