Skip to content

fix: terraform.ymlのTerraform Planステップにpipefailを追加 - #54

Draft
kigawa01 wants to merge 1 commit into
mainfrom
fix/terraform-yml-pipefail
Draft

fix: terraform.ymlのTerraform Planステップにpipefailを追加#54
kigawa01 wants to merge 1 commit into
mainfrom
fix/terraform-yml-pipefail

Conversation

@kigawa01

Copy link
Copy Markdown
Member

Summary

PR #51のCIチェックでterraform (hardware, k8s-worker3)が"pass"表示になっていたが、実際のログを確認するとterraform plan自体は"Resource postcondition failed: join_info did not return a token"で失敗していた。

原因はTerraform Planステップの./run.sh ... plan ... | tee plan_output.txtset -o pipefailが設定されておらず、パイプ全体の終了コードが常に成功するteeのものになっていたため、run.sh plan自体の失敗(postcondition違反、terraform init/planエラー等)がステップ・ジョブ全体の成否判定から握りつぶされていたこと。

kigawa-net/kinfra連携のterraform-kinfra.ymlで以前見つけて修正したのと同じパターンのバグ。

Changes

  • .github/workflows/terraform.yml: Terraform Planステップのrun:ブロック先頭にset -o pipefailを追加

Test plan

  • YAML構文チェック
  • マージ後、実際にplanが失敗するケース(例: k8s-worker3の現状)でジョブが正しく失敗表示になることを確認

🤖 Generated with Claude Code

`./run.sh ... plan ... | tee plan_output.txt`にpipefailが設定されておらず、
teeの終了コード(常に0)でステップの成否が判定されていたため、
run.sh plan自体が失敗(postcondition違反、terraform init/planエラー等)
していてもステップが「成功」と誤判定されていた。

実際にkigawa-net/infra#51のCIで、hardware/k8s-worker3のplanが
"join_info did not return a token"のpostcondition違反で失敗して
いたにもかかわらず、GitHub Actions上は該当ステップ・ジョブとも
成功(緑)と表示されるという形でこの問題が顕在化した。

kigawa-net/kinfra連携のterraform-kinfra.ymlで既に同様の修正を
行っている(同じパターンのバグ)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant