7
3

More than 1 year has passed since last update.

GitHub Actionsを使う前にactを使ってみる

Last updated at Posted at 2022-12-07

12月8日、128ですね。7ビットですか。キリがいいですね。
キリがいいついでに今年試したことで記事を書こうと思います。
(ホントは256あたりで書きたいところですが、2月56日は無いので12月8日でヨシとしてます:relaxed:

GitHub Actions、とても便利ですよね。
Pushしたらコードをチェックしてもらう、とか
ビルドやらバンドルやらをしてパッケージ化してもらう、とか
人間が繰り返したくない作業を肩代わりしてくれるのでとても重宝しています。

GitHubのFreeプランでも利用できますし、カジュアルなCI/CDはGitHubで十分な感じになってきています。
(もちろん制限はありますが、個人用途であれば困らないくらいの制限です)

非常に便利なGitHub Actionsですが、困りごともあります。

GitHub ActionsはGitHubに上げないと使えないことです。

GitHubのサービスなんだから当たり前なんですけど。
とはいえActionsをトライ&エラーしたいときとか、毎回GitHubに上げてたらエラい手間です。

とりあえずローカル実行でそういう技術は無いのか?と調べていて見つけたのがactになります。

↑の記事のまんまですけども。
GitHub Actionsは、起動するとコンテナ上でスクリプトを動かしてくれるものですが、
actはローカル上でコンテナを動かしてくれます。
ファイルもyml形式で作るので、GitHub Actionsの設定をそのまま流用できます。ノーストレス。

とはいえ、使えるようになる際に引っかかりました。

  1. actでdockerが起動
  2. ローカルのファイルをコンテナに移送
  3. コンテナ側でスクリプト実行

ってな動きとなる認識なのですが、スクリプト実行しているはずなのに

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /mnt/c/xxxxx: no such file or directory

みたいなエラーが(xxxxxには実際のディレクトリ名が入っているとみなしてください)。
確かに、フォルダは作られているようなのですが、中身がありません。

移送自体はログに載っているし失敗している形跡はないのに、ビルドは出来ない・・・
ってことで夜中に(趣味なので夜中にやってました)悩んでいました。

いろいろ試してもどうにもならず、Issuesを見たら

I noticed this too with actions/checkout@v3. It seems to be fixed in #1226.
My workaround was to build a local copy of act from master and use that for the time being.

とのこと・・・

Container.CopyDir is no longer working with \ as destpath. Should it support backslash as path separator e.g. replace with forwardslash.
It seems like my #1202 change causes issues with checkout on windows, files are no longer where they are expected to be.
I wondered in the past why I saw \mnt\c... in the act log, this now cause issues

ホストPCがWindowsだとディレクトリ指定に「\」(バックスラッシュ)を使いがちだけど「/」使わなきゃダメだったわー。なんかログも気になってたんだけどね!

みたいな話でしょうか。ショボいミスに引っかかってしまった形となります。

6/6に仕込まれたバグに私がぶつかってしまい、
数日(の深夜に)悩まされた中、6/22に解決したという話のようで、
そんな2週間ちょっとのバグに引っかかるのか!

と思った2022年でした!

そんな経験もとどめておきたいと思い記事にしました:smile:
何かの参考になれば幸いです。

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