Fix CI pipeline: split unit/integration tests, prevent concurrent flakiness #38
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Standalone — discovered during PR #37 review. Pipelines #5 and #6 ran concurrently against the live GoDaddy API, causing test record collisions (RECORD_NOT_FOUND on cleanup, data mismatch on replace).
Repo
ldraney/godaddy-tofuUser Story
As a contributor
I want reliable CI that doesn't produce false failures
So that PR reviews aren't blocked by flaky tests
Context
Current
.woodpecker.ymlruns all tests (including live GoDaddy API integration tests) on every push and PR event. When multiple pipelines run concurrently, they stomp on each other's test TXT records in thepalinks.appdomain. Pipeline #4 passed, then #5 and #6 failed withRECORD_NOT_FOUNDand data mismatch errors — same code, just concurrent execution.The fix: split the pipeline into two concerns:
go build,go vet— runs on all events (fast, no API access)go test ./pkg/godaddy/— runs only on push to main (post-merge), serializedThis way PRs get fast feedback from build/vet, and integration tests only run once per merge with no concurrency risk.
File Targets
.woodpecker.yml— restructure into build-only (PR) and full test (main push) pipelinesFeature Flag
None
Acceptance Criteria
Test Expectations
Constraints
golang:1.26imageGODADDY_API_KEYandGODADDY_API_SECRETfrom repo secretswhenconditions control event filteringChecklist
Related
godaddy-tofu— this repoScope Review: READY
Review note:
review-1479-2026-06-17Ticket is well-scoped with all template sections complete. Single file target (.woodpecker.yml) verified, 3 testable acceptance criteria, no dependencies, no decomposition needed. Story and Forgejo traceability confirmed. Arch note missing from pal-e-docs but in-repo docs/architecture.md covers the gap acceptably.