fix(ci): macOS Lighthouse の NO_FCP を背景化抑止フラグで解消する
macOSでのLighthouse CIにおける`NO_FCP`エラーは、アプリの問題ではなく、OSがヘッドレスウィンドウを非可視扱いにしてVSYNCを止めるのが原因。本記事では原因特定とChromeの起動フラグによる解決、CI構成での不安定なチェックの扱い方を解説します。
npm未publishの内部パッケージをvendoringで配る:取り込み元の追跡と改変検知を自動化する設計
npmにもGitHub Packagesにも公開しない方針の社内限定ライブラリを、複数のリポジトリが `vendor/` 配下に手でコピーして参照する構成は珍しくありません。ただし手コピーには弱点があります。どのコミットから持ってきたコードなのか、コピーしたあとに誰かが手を加えていないか、を追跡する手段がどこにもないのです。
デプロイ後スモークテストの「全断」誤判定、原因は失敗理由をひとまとめに扱っていたこと
デプロイ後に自動で「サイトが生きているか」を確認するスモークテストの話です。「サイト全断」と「バージョン未反映」を同じ失敗として扱うと、アラートが緊急度を正しく伝えられなくなります。失敗理由の文字列パターンによる分類と、期待バージョンの取得元の見直しで、この誤判定を防いだ設計を紹介します。
本人アカウントと委任アカウントが同じ機能を触るとき、権限チェックをどう一本化するか
本人アカウントと権限レベル付き委任アカウントが同じ機能を操作するシステムで、権限チェックを承認処理と作成処理で再利用して一本化する設計パターンを解説します。
CLIの起動判定がCIでだけ失敗する謎—TTY検出で出力形式が変わる罠
CLIはTTY接続の有無で出力形式を変えることがあり、これがE2EテストのCI環境でのみ起動判定が失敗する原因に。この謎を解き明かし、起動待ち判定の切り分け方と、原因の見えにくい不具合を解決するアプローチを解説します。
複数リポジトリのセキュリティCIをreusable workflowで一本化する
複数のリポジトリを運用していると、SAST・シークレットスキャン・依存脆弱性チェックといったセキュリティ系のCIを、リポジトリごとに個別実装してしまいがちです。
GitHub Actionsのrequired status checkでbotのPRだけ免除したい時にハマった2つの罠
Reusable GitHub Actions workflowでPRのタイトルや本文の書式を検査するjobを組んでいると、必ずと言っていいほど直面する問題があります。Dependabotのようなbotが作るPRは本文を自分たちの都合で書けないため、検査対象から外したい、というものです。
CLIの「エラーは出ているはずなのに何も表示されない」を追ったら見えた4つの罠
社内向けのCLIツールで、「エラーは出ているはずなのに何も表示されず、終了コードだけがおかしい」という不具合を追いかけたことはないでしょうか。
CIの使い捨てVMが原因不明で落ちる時に疑うべき「隠れた制約」
CIの使い捨てVMがなぜか毎回落ちる——原因はドキュメント上の識別子制約ではなく、内部で組み立てられるUNIXソケットパスの長さ制限でした。表面上の制約をクリアしても落ちる罠の見つけ方と、決定的なハッシュで識別子を短縮する対処法を解説します。










