GitHub Actions をローカルで実行する act が実用的になった

act とは

これです。

github.com

使い方

1. インストールする

公式ドキュメントにはいろいろなインストール方法が書いてありますが、ここでは bash 経由でインストールします。

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

2. GitHub Actions の設定ファイルが存在するリポジトリへ移動する

たとえば /path/to/my_app/.github/workflows/foobar.yml というようなファイルが存在するとき、$ cd /path/to/myapp します。

3. コマンドを実行する

実行します。

$ act

感想

以前まではコマンドの実行さえままならなかったのですが、現在では実用的になったと思います*1。ローカルでぐるぐる回せるので「コマンドでちょっと typo してしまったために 30分 かかる CI がやり直しになった」というような悲劇も防げます。

実行オプションも充実しているので公式ドキュメントを一読しておくとよいと思います。Fail したときにコンテナがまだ動いているので SSHデバッグ 的なことができるのもいいですね*2

*1:まだイケてない点もあります

*2:--rm オプションを指定して act を実行すると、失敗した時にもコンテナを削除してくれます

Rails を Docker 環境で動かす際にローカル環境と共存させるとエラーが出る

結論

表題のとおりです。

.bundle とか tmp/ とか vendor/ とかがローカル環境と混ざるとエラーが起き得ます*1。Docker 環境で使うディレクトリは Docker 環境だけで使いましょう。ローカル環境で使いたい場合には別途ディレクトリを作りましょう。

*1:gem のエラー。spring などがひっかかりやすい

zsh で Volta のオートコンプリートを有効にする方法

結論

1.

まず補完機能用のスクリプトを出力します (_volta) 。

$ volta completions zsh -o _volta
   note:  does not exist, creating it
success: installed completions to _volta

2.

出力したスクリプトを /usr/local/share/zsh/site-functions に移動します。

$ sudo mv _volta /usr/local/share/zsh/site-functions

3.

シェルを再起動します*1.

4.

補完機能が効いていることを確かめます。

$ volta [TAB]
completions  -- Generates Volta completions
fetch        -- Fetches a tool to the local machine
help         -- Prints this message or the help of the given subcommand(s)
install      -- Installs a tool in your toolchain
list         -- Displays the current toolchain
pin          -- Pins your project's runtime or package manager
run          -- Run a command with custom Node, npm, and/or Yarn versions
setup        -- Enables Volta for the current user / shell
uninstall    -- Uninstalls a tool from your toolchain
use          --
which        -- Locates the actual binary that will be called by Volta

*1:sourceコマンド等でもよいです

WSL2 内から起動するブラウザを Windows 側のブラウザにする方法($ gh repo view --web 時などで)

結論

環境変数 BROWSER に Windows のブラウザの場所を指定する。

具体例

例えば Chrome の場合は以下のように指定します*1

BROWSER="/mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe"

参考

github.com

補足

gh だけのスコープとしたいならば、$ gh config を用いてもよいです。

*1:インストール場所が異なっていたり他のブラウザを使いたい場合には、それぞれの場所を指定して下さい

続きを読む

Windows の VS Code の Live Server で、WSL2 から Windows 側のブラウザを開く方法

結論

settings.json に以下のような行を書き加えます。Chrome 以外のブラウザを設定したい場合には適宜書き換えて下さい。

  "liveServer.settings.AdvanceCustomBrowserCmdLine": "/mnt/c/Program Files/Google/Chrome/Application/chrome.exe",

設定項目の場所

このあたりにあります。settings.json に書かないと設定できない(=VS Code 内で完結しない設定)項目です。

gyazo.com

Powered by はてなブログ