Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# push / PR のたびに IaC の静的チェックと構成図生成を検証するワークフロー。
#
# 安全対策:
# - AWS credentials は一切使わない (GitHub Secrets にも設定しない)
# - 実行するのは validate / lint / 図生成のみで、AWS へは接続しない
name: validate

on:
push:
branches: [main]
pull_request:

# リポジトリの読み取りだけできれば十分
permissions:
contents: read

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Comment thread
coderabbitai[bot] marked this conversation as resolved.

# mise.toml に固定したツール (terraform / tflint / checkov / cfn-lint / cfn-dia) を導入
- uses: jdx/mise-action@v2

# SAM CLI (mise 管理外なので公式 action で導入)
- uses: aws-actions/setup-sam@v2
with:
use-installer: true

# 構成図生成用: Graphviz は apt、InfraMap は Homebrew (ランナーに標準搭載) で導入
- name: Install diagram tools
run: |
sudo apt-get update -qq && sudo apt-get install -y -qq graphviz
brew install inframap

# ローカルの学習サイクルと同じ一括チェックを実行する
- name: Run make check
run: make check
16 changes: 11 additions & 5 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# プロジェクトで使うツールとバージョンの固定 (mise install で一括導入)。
# CI (GitHub Actions) でも同じ定義を使うため、"latest" ではなく明示的に固定する
[tools]
"pipx:checkov" = "latest"
terraform = "latest"
tflint = "latest"
"pipx:cfn-lint" = "latest"
"npm:@mhlabs/cfn-diagram" = "latest"
terraform = "1.15.8"
tflint = "0.64.0"
"pipx:checkov" = "3.3.9"
"pipx:cfn-lint" = "1.54.0"
# fast-xml-parser@4.5.7 は provenance 無しのため mise の trust policy に検出されるが、
# npm tarball と GitHub の v4.5.7 タグのソース一致・公開者が 4.x 系従来のメンテナ本人
# であることを確認済み (5.x のみ trusted publishing を使う運用のため)。この 1 バージョン
# だけを検証済みとして除外する
"npm:@mhlabs/cfn-diagram" = { version = "1.1.40", trust_policy_excludes = ["fast-xml-parser@4.5.7"] }
Loading