dry-run と GitHub Actions でメンテしている dotfiles を mise に寄せた

はじめに 私の dotfiles では、ローカルの dry-run と GitHub Actions で、設定の変更を確認できるようにしています。dotfiles の設定適用にはスクリプトを使っていたのですが、手を入れるうちにスクリプトとテストコードが増えてきました。 そこで、シンボリックリンクの作成・解除や、パッケージ・開発ツールの導入を mise bootstrap に寄せました。 この記事では、もともとスクリプトで行っていた処理と、mise に移したあとの設定やコマンドを紹介します。 1. もともとはスクリプトで導入・解除していた dotfiles のセットアップは、PC のリプレイスなどを除けば頻繁に実行するものではありません。 そこで、ローカルでは dry-run で適用・解除の内容を確認し、GitHub Actions では自動テスト用に HOME 相当のディレクトリを用意して、一連の操作を試せるようにしていました。 当初は、複雑なことをしていなかったので、mise のようなツールを使うのはオーバーキルだと考えていました。そのため、install / uninstall といった操作に使うスクリプトを書いていました。 その後、適用前に dry-run で内容を確認したい、ローカルと CI でできるだけ同じ操作を使いたい、と要件が増えていきました。導入処理とは別に、それらを支えるスクリプトやテストコードも増え、構成が複雑になってきました。 要件が増えるたびに、実装とテストの両方を変更する必要がありました。dotfiles の設定に加えて、導入・解除の仕組みも自分でメンテすることになっていました。そこで、mise bootstrap を使って、このあたりをまとめて管理することにしました。 2. dotfiles の配置とツールの導入を mise bootstrap にまとめる mise bootstrap は、[dotfiles]、[bootstrap.packages]、[tools] などの設定をまとめて扱います。dotfiles だけを操作したい場合は mise dotfiles のコマンドを使えます。 dotfiles だけを操作するには、mise dotfiles を使えます。 2-1. シンボリックリンクの配置先を [dotfiles] に書く mise.toml の [dotfiles] に、どのファイルをどこへ配置するかを記述します。下記は一例です。 [dotfiles] # "<target>" = { source = "<リポジトリをルートとした相対パス>", mode = "<symlink/シンボリックリンクなど指定したいモード>" } "~/.dotfiles" = { source = ".", mode = "symlink" } "~/.bashrc" = { source = ".bashrc", mode = "symlink" } "~/.bash_profile" = { source = ".bash_profile", mode = "symlink" } "~/.gitconfig" = { source = ".gitconfig", mode = "symlink" } "~/.config/mise/config.toml" = { source = "mise.toml", mode = "symlink" } 各エントリに mode = "symlink" を明示して、シンボリックリンクで配置するようにしています。たとえば、~/.bashrc にはリポジトリ内の .bashrc へのリンクを作ります。リンクの作成・解除は mise に任せるので、dotfiles 側では配置先の設定をメンテすることになります。 ...

October 4, 2026 · 3 min · gkzz

Hugo 製の静的サイトを Cloudflare Pages から Workers へ移行した

1. はじめに このブログは Hugo で生成した静的ファイルを Cloudflare Pages から配信していました。今回、これを Cloudflare Workers の Static Assets から配信する構成へ移行しました。 前から気になっていたのが、Cloudflare Workers で Static Assets を配信できるようになったことです。長らく臭い物に蓋をしていたのはここだけの略 2024年9月、当社は静的アセットをホスト、保存、配信するためのベータサポートをCloudflare Workersで無料で利用できるようにしました。以前はCloudflare Pagesでのみ利用可能だったものです。 フロントエンド、バックエンド、データベースが1つのCloudflare Workerに | Cloudflare ブログ 加えて、GitHub Actions で使っていた cloudflare/pages-action が deprecated になったことも、移行のきっかけでした。 Pages を使い続けることもできますが、この機会に Workers の Static Assets へ移し、GitHub Actions からのデプロイには cloudflare/wrangler-action を使うことにしました。 2. 移行にあたって Cloudflare には Pages から Workers への公式の移行ガイドがあります。 Migrate from Pages to Workers · Cloudflare Workers docs 今回はこの公式ガイドをベースに、コーディングエージェントにも助けてもらいながら移行を進めました。 実際にやってみると、Workers の設定だけではなく、GitHub Actions、Toolchain の管理、production deploy の扱い、Custom Domain の切り替え、旧 Pages プロジェクトの削除など、いくつか手を入れるところがありました。 ...

August 13, 2026 · 4 min · gkzz

maestro testコマンドの `--test-output-dir` と `--debug-output` の違いをドキュメントとサンプルコードから追ってみる

はじめに Maestro の maestro test コマンドでは、--test-output-dir と --debug-output などのオプションで、スクリーンショットやログなどの artifacts が出力されます。両者はどちらも「artifacts の保存先を指定するオプション」に見えるのですが、実際には扱うファイルがやや異なります。 この違いを意識しないと、落ちたテストの調査で「あるはずの artifact が見つからない」ということが起こりえます。 たとえば、スクリーンショットを探していたら maestro.log しか入っていなかったり、逆にログだけ別ディレクトリに出ていたり。 そこで、この記事では maestro test の artifacts 周りを整理します。また、ドキュメントとサンプルコードを頼りに、これらのオプションの違いや使用例を探ってみます。 この記事で最初に押さえたいのは、次の4点です。 --test-output-dir はスクリーンショットや動画の主な置き場 --debug-output は maestro.log の主な置き場 commands-*.json は artifact 調査で見ることになる主要なファイル --flatten-debug-output は --debug-output の artifact 群のディレクトリ階層をフラットにする レポート系のフォーマットは下記の2つです。 --format : レポートのフォーマット。 例:--format junit , --format html , --format html-detailed --output : 上記のレポートの出力場所。省略した場合はカレントディレクトリに出力。 例:--output build/report.xml なお、AI 系のレポートは生成条件が別なのでこの記事では深追いしません。 参考:https://docs.maestro.dev/maestro-flows/workspace-management/ai-test-analysis 1. --test-output-dir / --debug-output / --flatten-debug-output オプションの早見表 --test-output-dir / --debug-output / --flatten-debug-output オプションの早見表をご覧ください。 ...

July 20, 2026 · 4 min · gkzz

JaSST’26 Tokyo にオンライン参加してきたメモ

1.はじめに 2026年3月20日に開催された JaSST’26 Tokyo にオンラインで参加し、いくつかのセッションを視聴しました。 AI の活用や品質の捉え方といったテーマを通じて、日々の業務だけでなく、これからのキャリアの方向性についても考えさせられる内容が多くありました。 本記事では、それらの内容を備忘録として講演のポイント、感想の2つの切り口から整理し、最後にまとめとして全体の通しての学びについて触れます。 2.セッション別メモ 2-1.A1)When AI Joins the Test Team: Promise, Pitfalls, and the Future of Software Quality 登壇者:Gayathri Mohan さま 『Full Stack Testing』 の著者 講演のポイント AI は単なる自動化ツールではなく、観察して提案する「協働者」としてテスト活動に入りつつあり、機能テストに限らず非機能領域まで含めてテストのスピードを大きく向上させると述べられていました。 一方で、AI の出力に対する過信や誤った安心感といったリスクも指摘されており、特に探索的テストでは、意図や過程が見えにくくなる点が課題とされていました。 感想 探索的テストにおいては、AI の挙動や経過を追えないまま結果だけを受け取ると、その妥当性を判断することが難しくなるのではないでしょうか。 結果が高速に得られるほど、「どのような意図で、なぜその結論に至ったのか」を説明できることの重要性は高まるでしょう。 また、実務面では AI に与えるコンテキスト(ドキュメント)の整備コストが無視できないという話題もありました。 仕様や前提、判断基準を揃える必要があり、テスト実行が高速化する一方で、準備や整備の比重が増えていると感じました。 そのため、AI を活用する際は責任範囲を事前に整理する必要がありそうです。どこまで採用するのか、何を根拠として扱うのか、最終判断を誰が担うのか など。AI を活用することで移譲できることは増えたけど、この責任範囲の事前検討はじめ、依然として抱える業務はありそうです。むしろ、AI が返す回答を理解するためにこれまで以上に調査が求められるのかもしれない、、と思ったら 生成AIパラドックス という概念があるようですね。 cf. AI時代のソフトウェア開発はなぜ停滞する? 「AIパラドックス」を解消するための戦略とは | gihyo.jp 2-2.D2)品質を経営にどう語るか 登壇者: kyon_mm(デロイト トーマツ)さま naco_mm(キャディ)さま moriyuya(witch&wizards)さま https://speakerdeck.com/kyonmm/communicating-the-strategic-value-of-quality-to-executive-leadership 講演のポイント 品質を重視しているだけでは経営層に価値は伝わらず、事業への影響という観点で説明する必要があるとされていました。特にAI活用が進むことで非構造データが増え、従来のようにテストの積み上げだけで品質を説明することが難しくなっているとのことです。 そのため、品質を事業 KPI やリスクと結びつけて伝えることが重要であり、あわせて CoQ についても既存の仕組みに組み込んで無理なく運用することの重要性が述べられていました。 感想 品質を「テストした/していない」という観点ではなく、事業 KPI にどのように接続するかで捉える必要があると感じました。 ...

March 22, 2026 · 1 min · gkzz

帝京大学理工学部(通信教育課程)を卒業しました

これは 社会人学生 Advent Calendar 2024 3 日目の記事です。 ぼくは 2021 年春へ帝京大学理工学部(通信教育課程)へ編入していたのですが、2024 年夏に卒業しました。 入学してよかったか 編入学当初は 腰を据えて勉強したい と意気揚々と二足の草鞋に励んでいましたが、とんでもなくたいへんでした、、。勉強すればするほどかえって自分の無知さを思い知る日々が続き、いつしか卒業することが目的となったというのはここだけの話です笑。 一方で 足るを知り、足らざるを知る という考えを持つことができたことはポジティブなことでした。結局は自分の現状を認めなくちゃしんどいなと。 これから 仕事はもちろんですが、これまで存分に楽しめなかった旅行や登山などなどやっていきたいです。編入学当初に思い描いていた景色とは違うものとはなりましたが、Connecting the dots という言葉のとおり、これまでのすべての選択が次の選択の糧となるようにがんばります。 網笠山の山頂からの一枚 :) 3-4 年目に取得した科目 最後に、後述するブログでは触れていない、3-4 年次に取得した科目を列挙します。なお、現在は履修できなかったり、履修方法が異なる科目があるかもしれません。ご注意ください。 Web アプリケーション オートマトンと計算理論 情報科学演習 3 情報科学演習 4 情報技術者演習 オペレーティングシステム コンピュータアーキテクチャ 画像情報処理 応用数学 情報システム 情報システムデザイン 情報社会論 情報理論 情報セキュリティ オペレーションズリサーチ ディジタル通信 英語コミュニケーション ディジタル信号処理1 自動制御論 論理回路 以下は単位認定 コンピュータグラフィックス 電波法および電気通信法 通信方式 参考) 編入学当初や在学時代のふりかえり いろいろ悩んで帝京大学理工学部(通信教育課程)の社会人大学生になった 帝京大学理工学部(通信教育課程)の社会人大学生 1 年目をふりかえる | gkzz.dev 帝京大学理工学部(通信教育課程)の社会人大学生 2 年目をふりかえる | gkzz.dev p.s. 最近、ネトフリで 愛の不時着 を観たのですが、間違った電車がときには目的地へ連れて行く というフレーズを知りました。厳しくも鼓舞してくれるすてきな言葉ではないでしょうか。

November 19, 2024 · 1 min · gkzz