コンテンツにスキップ
Dev Classmethod Jp Articles Gha Actionlint Basics

actionlintでGitHub Actionsワークフローの構文・式・シェルを静的解析してみる

  • URL: https://dev.classmethod.jp/articles/gha-actionlint-basics/
  • 日付: 2026-06-06
  • Tier: Tier 3
  • 要旨: GitHub Actions ワークフロー専用の静的解析ツール actionlint の基本的な使い方を実例付きで解説。ランナーラベルの検証、式の型チェック、スクリプトインジェクション検出まで対応。

詳細

  • ツール概要: actionlint はGo製。.github/workflows/*.yml を push 前にローカルで検証できる
  • 検出できる問題: ①ランナーラベルの typo(ubuntu-latest-xl は無効と指摘)、②${{ github.event.head_commit.message }} のスクリプトインジェクションリスク、③未定義の matrix.os 参照
  • shellcheck 連携: シェルスクリプトを shellcheck で二次チェック。-shellcheck= で無効化可能
  • 設定集約: .github/actionlint.yaml で self-hosted ランナーラベルなどを設定
  • インストール: macOS なら brew install actionlint
  • 実用性: CI試行回数を減らせる。終了コード1でCIにそのまま組み込める