Skip to content

feat: enhance versioning strategy and validation for TestFlight uploads - #30

Merged
omarghatasheh merged 1 commit into
mainfrom
musa-patch2
Mar 10, 2026
Merged

feat: enhance versioning strategy and validation for TestFlight uploads#30
omarghatasheh merged 1 commit into
mainfrom
musa-patch2

Conversation

@MusaMisto

@MusaMistoMusaMisto commented Mar 10, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

Release Notes

  • New Features

    • Extended iOS versioning options with marketing-version-bump (patch, minor, major) and optional marketing-version-floor inputs
    • Automated pbxproj version updates with enhanced validation
    • Improved App Store upload error handling with comprehensive validation error detection
  • Improvements

    • Consolidated versioning strategy for streamlined workflow

@coderabbitai

coderabbitaiBot commented Mar 10, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 42a2db53-4480-4758-91a0-98ceebf52104

📥 Commits

Reviewing files that changed from the base of the PR and between b522a55 and 1320d4f.

📒 Files selected for processing (1)
  • .github/workflows/generic-ios-testflight.yml

📝 Walkthrough

Walkthrough

Updated iOS TestFlight distribution workflow with extended versioning options (marketing-version-bump, marketing-version-floor), automated pbxproj versioning via two strategies (pbxproj-counter and pbxproj-auto-increment), and enhanced App Store upload error handling with validation failure detection.

Changes

Cohort / File(s)Summary
iOS Versioning Workflow
.github/workflows/generic-ios-testflight.yml
Added new workflow inputs for version bumping strategy and floor version. Introduced automated pbxproj update step with logic for two versioning strategies: pbxproj-counter (computes version from prefix/run number) and pbxproj-auto-increment (increments semantic version components with optional floor). Removed legacy pbxproj-counter step. Enhanced App Store upload error handling to capture exit codes and scan for validation failures across both build and release flows.

Sequence Diagram(s)

sequenceDiagram
actor Workflow as GitHub Action
participant Input as Versioning Input
participant Parser as pbxproj Parser
participant Logic as Version Logic
participant File as pbxproj File
participant Upload as App Store Upload
participant Handler as Error Handler
Workflow->>Input: Read versioning-strategy
Input-->>Workflow: Return strategy type
Workflow->>Parser: Validate & parse pbxproj
Parser->>File: Extract MARKETING_VERSION, CURRENT_PROJECT_VERSION
File-->>Parser: Return current versions
Parser-->>Workflow: Confirm valid format
alt pbxproj-counter strategy
Workflow->>Logic: Compute version from prefix + run number
else pbxproj-auto-increment strategy
Workflow->>Logic: Increment version component + apply floor
end
Logic-->>Workflow: Return NEW_MARKETING_VERSION, NEW_BUILD_NUMBER
Workflow->>File: Update MARKETING_VERSION, CURRENT_PROJECT_VERSION
File-->>Workflow: Confirm write success
Workflow->>Upload: Send to App Store
Upload-->>Handler: Return exit code + output
alt exit code non-zero OR validation error detected
Handler->>Workflow: Fail workflow
else success
Handler->>Workflow: Proceed with result
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • omarghatasheh

Poem

🐰 Hop, hop, version bump!
pbxproj numbers now auto-jump,
Two strategies dance in the script so clean,
Altool errors caught—validation's keen!
To TestFlight we bound with error-handling sound! 📱✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch musa-patch2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

2 participants

@MusaMisto@omarghatasheh