GitHub Actionsで業務自動化を壊さない9つの設計術|CIを「止まらない自動化資産」に変える実践手順
「毎朝CSVを集計してレポートを送る」「記事を生成して公開する」「価格や在庫を取得して通知する」。こうした業務自動化を始めても、担当者のパソコン上で動かしている限り、電源、通信、ログイン状態に左右されます。 GitHub Actionsへ移せば、GitHub上の実行環境で業務スクリプトを定期的、または特定の操作をきっかけに起動できます。しかし、単にcronを設定しただけでは、二重実行、秘密情報の漏えい、不完全なデータの公開、API利用料の暴走といった問題が起こり得ます。収益につながる処理ほど、誤作動したときの損失も大きくなります。 この記事では、GitHub Actions、CI、Secrets、dry-run、ログ、KPIを組み合わせ、担当者が毎回立ち会わなくても運用を継続できる設計を解説します。 目指すのは「一度も失敗しない仕組み」ではありません。失敗を自動検知し、危険な更新を止め、あとから原因を追跡できる仕組みです。これが整えば、集客記事の公開、アフィリエイトデータの更新、ポイント獲得条件の収集などを、時間の切り売りではない自動化資産へ近づけられます。 なお、自動化による収益やポイント獲得を保証するものではありません。成果は規約、需要、集客力、運用コストなどによって変わります。本記事は一般的な技術情報であり、特定サービスの規約適合性や収益性を保証するものではありません。 GitHub ActionsとCIの全体像 GitHub Actionsは、リポジトリ内の .github/workflows/*.yml または .github/workflows/*.yaml に書いた手順を、GitHubのrunnerで実行する仕組みです。runnerとは、PythonやNode.jsなどを動かす実行環境です。 CIはContinuous Integrationの略で、変更を統合する前後にテストやビルドを自動実行する考え方です。例えば、記事公開スクリプトを実行する前に、リンク切れ、必須項目、生成物の形式を検査します。 役割を分けると理解しやすくなります。 要素 役割 具体例 GitHub Actions 決めた条件で処理を起動する mainへのpush、手動実行、定刻実行 業務スクリプト 実際の仕事を処理する CSV集計、記事生成、API取得 CI 壊れていないか検査する pytest、lint、サイトビルド Secrets 秘密情報を保管する APIキー、デプロイトークン artifact 結果を証拠として保存する レポート、ビルド済みサイト、エラーログ 通知 人間が見るべき例外を知らせる 連続失敗、予算超過、データ欠損 安全な流れは、次の順序です。 起動 → 入力確認 → テスト → dry-run → 本処理 → 出力検証 → 公開 → ログ保存 → 異常通知 収益処理を先に実行し、最後に検査する構成では、誤った記事や価格を公開したあとで失敗に気づく可能性があります。公開、送信、購入、有料APIの呼び出しなど、副作用がある処理は検査に合格した後ろへ置きます。 最初に作るべき「事故の想定表」 YAMLを書く前に、何を防ぐのかを明確にします。少なくとも、次の4つは検討してください。 事故 起こり得る損失 防止策 検知方法 同じ処理の二重実行 二重投稿、重複課金 concurrency、冪等性 実行キーの重複検査 不完全な成果物の公開 信頼低下、機会損失 出力検証、段階的デプロイ 件数・必須項目・URL検査 APIキーの漏えい 不正利用、追加請求 Secrets、最小権限 secret scanning、利用履歴 API利用量の暴走 想定外の請求 件数・回数・金額の上限 推定費用と実費の記録 この表がないと、「テストは通るが事業上は危険」という状態を見落とします。技術的な正常終了と、業務上の成功を分けて定義することが重要です。 ...