Open4

WSL + nektos/act で GitHub にSSH接続する

ピン留めされたアイテム
cat2151cat2151

3行で説明

  • Agentic Codingでお手軽にGitHub Actions作ってますか?楽に効率化できて便利ですよね!
  • Windowsだとtestがつらい…。そこで WSL + nektos/act。そのままymlが動きます。
  • GitHubにSSH接続したい。苦戦。できた。方法をまとめました。
cat2151cat2151

成功したコマンド

eval $(ssh-agent) && ssh-add ~/.ssh/id_rsa

export SSH_AUTH_SOCK=/ssh-agent

act workflow_dispatch --workflows .github/workflows/あなたのワークフローymlファイル名 --secret-file .secrets --container-options "-v /home/user/.ssh:/root/.ssh -v $SSH_AUTH_SOCK:/ssh-agent" --platform ubuntu-latest=catthehacker/ubuntu:act-20.04
cat2151cat2151

いろいろ

  • SSH
    • https + PATか、SSHか、を最初に選ぼう
      • 今回は、なんとなくSSHを選んだ
    • su あなたのユーザ名 しましょう。root作業しながらact動かそうとしたらいろいろ失敗した(そりゃそうだ)
    • WSLでSSHを動かすためのいろんな手順が必要。agentにきいてすべて打開できたので割愛
    • 接続できないと、commit pushに失敗します。commit pushのtestができなくてもいい?そうかな…そうかも…
  • Docker
    • nektos/actはDockerを呼び出している
  • パース
    • nektos/actはGitHub Actions ymlをパースし、そのなかのコマンド部分で、Dockerコンテナを呼び出してコンテナ上でコマンドを動かしている
  • option
    • nektos/actがDockerにわたすoption、を指定できる
  • exe
    • WSL Dockerはデフォルトではexeを呼び出してエラーになるので、exeの行を消す必要がある
    • ~/.docker/config.json
    • 詳しくは割愛、AIがすぐわかる
  • ハルシネーション
    • 一番苦戦したのは、actのコマンドライン生成をAIがハルシネーションしたこと
    • なので、喉から手が出るほど欲しかったのは、「このコマンドならエラーにならず成功する」という情報
cat2151cat2151

モチベ : なぜWSL + nektos/act で GitHub にSSH接続するの?

  • GitHub ActionsをAgentic Codingして楽をする
  • nektos/act で、WindowsローカルでGitHub Actionsをテストできるのは便利
    • これまでの課題
      • Windowsネイティブ環境で、scriptを使っての、GitHub actionsのtestが困難。ハルシネーション多発した。
      • 対策、WSL + nektos/act を使う