Review: Fix CI: split unit/integration tests
Verdict: READY
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- Standalone, discovered during PR #37 review
- [x] Repo -- ldraney/godaddy-tofu
- [x] User Story -- present, well-formed
- [x] Context -- clear explanation of concurrent pipeline failures (#5 and #6)
- [x] File Targets -- .woodpecker.yml identified
- [x] Feature Flag -- None (appropriate for CI config)
- [x] Acceptance Criteria -- 3 criteria, testable
- [x] Test Expectations -- 2 manual verification steps
- [x] Constraints -- golang:1.26 image, secrets, Woodpecker when conditions
- [x] Checklist -- present
- [x] Related -- present
Traceability
- [x] story:dns-iac label -- DNS as IaC
- [x] story note verified -- story-godaddy-tofu-dns-iac exists in project-godaddy-tofu user-stories section
- [x] arch:godaddy-tofu label -- provider component
- [ ] arch note MISSING -- no arch-godaddy-tofu note found in pal-e-docs. However, architecture docs exist in-repo at docs/architecture.md. Acceptable for this repo's maturity level -- the arch label correctly references the component even without a pal-e-docs note.
- [x] Forgejo issue -- https://forgejo.tail5b443a.ts.net/ldraney/godaddy-tofu/issues/38, open
File Targets
- [x]
.woodpecker.yml-- verified: exists, currently has a single pipeline with both build and test steps running on all push+pull_request events. Structure matches what the issue describes: build (go build, go vet) and test (go test ./pkg/godaddy/) in one undifferentiated pipeline with a globalwhen: event: [push, pull_request]trigger.
Repo Placement
Correct. The CI config lives in this repo and the fix is scoped entirely to this repo.
Dependencies
No blockers. All other board items are in the done column. This is standalone work with no upstream or downstream dependencies on the board.
Acceptance Criteria
All 3 criteria are verifiable:
- "PRs trigger build + vet only" -- verifiable by opening a test PR and checking Woodpecker pipeline steps
- "Pushes to main trigger build + vet + integration tests" -- verifiable by merging and observing pipeline
- "No concurrent integration test runs possible" -- inherent from Woodpecker's pipeline serialization when only main-push triggers integration tests
Test Expectations are manual verification steps (open PR, merge to main) -- appropriate for CI config changes where automated test verification would be circular.
Blast Radius
Low. This change only affects
.woodpecker.yml. No downstream consumers are affected. Note: root-level acceptance tests (resource_dns_record_test.go, data_source_dns_records_test.go) use resource.Test() which requires TF_ACC=1. These are not currently run by CI and the ticket does not address them -- this is a separate concern and does not block this ticket.Integration tests in
pkg/godaddy/ self-skip via testClient(t) when env vars are absent, except for two pure unit tests (TestNewClient, TestNewClientWithBaseURL) which always run. The split is clean: build-only PRs will still pass the unit tests if go test is run without credentials.Decomposition Assessment
No decomposition needed. Single file target, 3 acceptance criteria, single repo. Estimated agent work well under 5 minutes. This is a straightforward Woodpecker YAML restructuring.
Recommendation
No action needed.