Skip to content

Fix homelab-plan required check blocking non-homelab PRs - #18

Merged
nickvigilante merged 1 commit into
mainfrom
fix-homelab-plan-required-check
May 27, 2026
Merged

Fix homelab-plan required check blocking non-homelab PRs#18
nickvigilante merged 1 commit into
mainfrom
fix-homelab-plan-required-check

Conversation

@nickvigilante

Copy link
Copy Markdown
Owner

Problem

homelab-plan is a required status check (homelab/locals.tfrequired_status_check_contexts = ["homelab-plan"]), but its workflow was path-filtered to homelab/**. Any PR that doesn't touch homelab/ — docs-only, cloudflare-only, lint-only (e.g. #17) — never triggers the workflow, so the required check stays stuck at "Expected — Waiting for status to be reported" and the PR can't merge. The status isn't even clickable because no Actions run exists behind it.

Fix

Remove the paths: filter so the workflow runs on every PR and always reports homelab-plan, then gate the expensive tofu steps (init/validate/plan) on a dorny/paths-filter@v3 detection. On PRs that don't touch homelab/, every gated step is skipped and the job reports green in seconds — no tofu, no cloud creds. On PRs that do, it runs the full plan exactly as before.

After this merges

#17 needs its branch updated to pick up this workflow (pull_request runs the workflow from the head branch), after which homelab-plan will report a green skip and #17 becomes mergeable normally.

The homelab-plan check is required by branch protection
(homelab/locals.tf), but its workflow was path-filtered to homelab/**.
PRs that don't touch homelab/ (docs-only, cloudflare-only, lint-only)
never triggered it, so the required check sat permanently at
"Expected — Waiting for status to be reported" and blocked merge.

Drop the path filter so the workflow always runs and reports
homelab-plan, and gate the expensive tofu steps on a dorny/paths-filter
detection instead — a job whose steps are all skipped still reports
success, satisfying branch protection without running tofu on
unrelated PRs.
@github-actions

Copy link
Copy Markdown

homelab tofu plan

Plan output
tailscale_acl.main: Refreshing state... [id=acl]
tailscale_dns_preferences.main: Refreshing state... [id=ad9f64d5-f380-ae42-4811-7604bfdb5bcd]
tailscale_dns_nameservers.global: Refreshing state... [id=34619e51-87ec-b5df-c078-fd2e3181d9c5]
data.github_user.self: Reading...
github_repository.managed["tuile"]: Refreshing state... [id=tuile]
github_repository.managed["tools"]: Refreshing state... [id=tools]
github_repository.managed["dotfiles"]: Refreshing state... [id=dotfiles]
github_repository.managed["infrastructure"]: Refreshing state... [id=infrastructure]
github_repository.managed["passgen"]: Refreshing state... [id=passgen]
github_repository.managed["vale-languagetool"]: Refreshing state... [id=vale-languagetool]
github_repository.managed["styleguide"]: Refreshing state... [id=styleguide]
github_repository.managed["homelab"]: Refreshing state... [id=homelab]
github_repository.managed["docs"]: Refreshing state... [id=docs]
github_repository.managed["puzzles"]: Refreshing state... [id=puzzles]
data.github_user.self: Read complete after 3s [id=13631471]
github_actions_secret.tailscale_oauth_client_secret: Refreshing state... [id=infrastructure:TAILSCALE_OAUTH_CLIENT_SECRET]
github_actions_secret.github_app_id: Refreshing state... [id=infrastructure:TF_GITHUB_APP_ID]
github_actions_secret.github_app_installation_id: Refreshing state... [id=infrastructure:TF_GITHUB_APP_INSTALLATION_ID]
github_actions_secret.aws_access_key_id: Refreshing state... [id=infrastructure:AWS_ACCESS_KEY_ID]
github_actions_secret.aws_secret_access_key: Refreshing state... [id=infrastructure:AWS_SECRET_ACCESS_KEY]
github_branch_protection.main["passgen"]: Refreshing state... [id=BPR_kwDOPAgUIM4Ek1Lp]
github_branch_protection.main["dotfiles"]: Refreshing state... [id=BPR_kwDOKUP2984EclBF]
github_branch_protection.main["tuile"]: Refreshing state... [id=BPR_kwDOSB7YJc4Ek1LN]
github_branch_protection.main["styleguide"]: Refreshing state... [id=BPR_kwDONEbTDs4Ek1Lj]
github_branch_protection.main["docs"]: Refreshing state... [id=BPR_kwDOSFgwGs4Ek1Ll]
github_branch_protection.main["tools"]: Refreshing state... [id=BPR_kwDOCpIRFs4CjUwo]
github_branch_protection.main["vale-languagetool"]: Refreshing state... [id=BPR_kwDONCBpAs4Ek1LO]
github_branch_protection.main["infrastructure"]: Refreshing state... [id=BPR_kwDOSZwzas4Ek1LQ]
github_branch_protection.main["puzzles"]: Refreshing state... [id=BPR_kwDOSMxZ4c4Ek1Lo]
github_branch_protection.main["homelab"]: Refreshing state... [id=BPR_kwDOSZ4rVc4Ek1bm]
github_repository_vulnerability_alerts.alerts["puzzles"]: Refreshing state... [id=1221351905]
github_repository_vulnerability_alerts.alerts["tools"]: Refreshing state... [id=177344790]
github_repository_vulnerability_alerts.alerts["vale-languagetool"]: Refreshing state... [id=874539266]
github_repository_vulnerability_alerts.alerts["infrastructure"]: Refreshing state... [id=1234973546]
github_repository_vulnerability_alerts.alerts["passgen"]: Refreshing state... [id=1007162400]
github_repository_vulnerability_alerts.alerts["dotfiles"]: Refreshing state... [id=692319991]
github_repository_vulnerability_alerts.alerts["docs"]: Refreshing state... [id=1213739034]
github_repository_vulnerability_alerts.alerts["styleguide"]: Refreshing state... [id=877056782]
github_repository_vulnerability_alerts.alerts["tuile"]: Refreshing state... [id=1209980965]
github_repository_vulnerability_alerts.alerts["homelab"]: Refreshing state... [id=1235102549]
github_repository_environment.homelab_apply: Refreshing state... [id=infrastructure:homelab-apply]
github_actions_secret.tailscale_oauth_client_id: Refreshing state... [id=infrastructure:TAILSCALE_OAUTH_CLIENT_ID]
github_actions_secret.github_app_private_key: Refreshing state... [id=infrastructure:TF_GITHUB_APP_PRIVATE_KEY]

No changes. Your infrastructure matches the configuration.

OpenTofu has compared your real infrastructure against your configuration and
found no differences, so no changes are needed.

@nickvigilante
nickvigilante merged commit f373c06 into main May 27, 2026
2 checks passed
@nickvigilante
nickvigilante deleted the fix-homelab-plan-required-check branch May 27, 2026 23:08
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