iOS build pipeline — .woodpecker/ios.yml #79
Labels
No labels
domain:backend
domain:devops
domain:frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/westside-app#79
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
Infra
Lineage
project-capacitor-mobile→ Board item (westside first consumer)Repo
forgejo_admin/westside-appUser Story
As a dev agent
I want push-to-main to trigger an iOS build and TestFlight upload
So that every merge produces a testable iOS build automatically
Context
Woodpecker pipeline that runs on Mac agent (platform=darwin). Steps: npm ci → build → cap sync ios → xcodebuild archive → export → fastlane pilot upload to TestFlight.
Blocked by: Capacitor init (westside-app #78), Mac CI agent (pal-e-platform #166), Fastlane signing (pal-e-platform #167).
File Targets
Files to create:
.woodpecker/ios.yml— iOS build pipelineFiles NOT to touch:
.woodpecker/*.yml— web pipeline unchangedAcceptance Criteria
Test Expectations
Constraints
labels: platform: darwinroutes to Mac agentwhen: branch: main, event: push— only main branchChecklist
Related
project-capacitor-mobile— iOS Build Pipeline architectureTicket Scope Review -- Issue #79
TEMPLATE COMPLIANCE
Checked against
template-issue(pal-e-docs). All required sections present:### Lineage--project-capacitor-mobile-> Board item (westside first consumer)### Repo--forgejo_admin/westside-app### User Story-- As a dev agent / I want push-to-main to trigger an iOS build and TestFlight upload / So that every merge produces a testable iOS build automatically### Context-- explains pipeline flow and lists blockers inline### File Targets--.woodpecker/ios.ymlto create; existing.woodpecker/*.ymland application code explicitly excluded### Acceptance Criteria-- 4 checkboxes, all testable### Test Expectations-- 3 items covering pipeline green, TestFlight receipt, web pipeline independence### Constraints-- platform label routing, branch filter, fastlane match readonly### Checklist-- standard 3-item checklist### Related-- referencesproject-capacitor-mobileand #78Also includes
### Type(Infra) -- not in the canonical template, but consistent with sibling issue #78 and adds clarity. No objection.TRACEABILITY
story:cap-buildarch:ios-pipelinetype:infraconsumer:westsideBoard item confirmed on
board-capacitor-mobile(item #371, column: backlog).Note: The traceability labels (
story:cap-build,arch:ios-pipeline,type:infra,consumer:westside) live on the board item. The Forgejo issue itself carriesdomain:backend,domain:devops,domain:frontend. These are two different label systems -- board labels for traceability, Forgejo labels for domain routing. No conflict, but the Forgejo labels could be more precise (this is purely devops/infra, not really frontend or backend work).FILE TARGETS ASSESSMENT
Specific enough for agent execution:
.woodpecker/ios.yml-- single file, clear scope.woodpecker/*.yml, application code -- explicit exclusion prevents scope creepThe architecture section on
project-capacitor-mobileeven documents the exact pipeline steps:npm install -> npm run build -> npx cap sync -> xcodebuild archive -> xcodebuild -exportArchive -> fastlane pilot upload. An agent has everything it needs.ACCEPTANCE CRITERIA ASSESSMENT
All 4 criteria are testable and map to observable outcomes:
DEPENDENCY CHECK
Three blockers listed in Context:
Two of three blockers are unresolved. This issue CANNOT move to
next_upuntil #166 (Mac CI agent) and #167 (Fastlane signing) are at minimum inin_progress. The pipeline has nothing to run on without a Mac agent, and nothing to sign with without Fastlane match certificates.NITS
domain:frontendis misleading for a CI pipeline file. Considerdomain:devopsonly, or add ablockedlabel to signal the dependency state.fastlane pilot uploadexit" for something the agent can verify programmatically.VERDICT: APPROVED
Ticket is well-scoped, follows template, traceability is fully verified against project-capacitor-mobile (both story and arch labels trace to documented entries). File targets are precise. Acceptance criteria are testable. Dependencies are correctly identified.
Recommended column: remain in
backloguntil pal-e-platform #166 and #167 are resolved. Once those blockers clear, this is ready fortodo->next_upwithout further scoping.