【GitHub Actions】actを使って、ローカルでCIを動かしてみよう

CI

概要

どうも、@daiki1003です!

GitHub Actionsで動かしたいymlを書いたんだけど
実際に動くかどうか不安…。
そんな時は誰にだって一度や二度はありますよね。

でも、実際にpushしてデバッグするのって結構大変ですよね。
そんな時に活躍するのが今回紹介したいactです!

今回は触りの部分だけ解説していこうと思います。
それでは、早速行ってみましょー!

筆者環境

MacBook Pro 2021 14インチ
Apple M1 MAX
macOS monterey 12.1

actのインストール

GitHub - nektos/act: Run your GitHub Actions locally 🚀
Run your GitHub Actions locally 🚀. Contribute to nektos/act development by creating an account on GitHub.

それぞれのplatformに対応したインストール方法があります。
下に記した方法以外にもあるので詳しくはgithubをみてみてください。

MacOS

brew install act

Windows(Chocolatey)

choco install act-cli

Manual

curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

実行してみる

では、早速actコマンドを実行してみましょう。
すると、以下のような警告が出ました。

WARN  ⚠ You are using Apple M1 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'.
? Please choose the default image you want to use with act:

  - Large size image: +20GB Docker image, includes almost all tools used on GitHub Actions (IMPORTANT: currently only ubuntu-18.04 platform is available)
  - Medium size image: ~500MB, includes only necessary tools to bootstrap actions and aims to be compatible with all actions
  - Micro size image: <200MB, contains only NodeJS required to bootstrap actions, doesn't work with all actions

Default image and other options can be changed manually in ~/.actrc (please refer to https://github.com/nektos/act#configuration for additional information about file structure)

とりあえず動かしたいだけですが、後々足りないと言われても面倒なのでMediumを選択しました。

基本的な動かし方

act

actコマンドのみで実行するとpush時に動作するジョブが動き出します。
筆者の環境ではそのようなジョブは設定していないので何も起きません。

act pull_request

pull_request作成時に動作するジョブが動き出します。

act pull_request -j hoge

筆者の環境では、プルリク作成時に複数のジョブが平衡に動き出します。
そのうちどれか一つをデバッグしたい場合は-jオプションでジョブを指定してあげます。

他にもさまざまなオプションとともに動かすことができるので
ぜひ触ってみてくださいね!

とても効率良くデバッグ出来ると思います👍

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました