Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tooling] Automate distribution of TestFlight builds to external tester groups #2537

Merged
merged 3 commits into from
Dec 13, 2024

Conversation

AliSoftware
Copy link
Contributor

@AliSoftware AliSoftware commented Dec 11, 2024

What it says on the tin.

As part of calling upload_to_test_flight at the end of release builds (post code-freeze, beta, or final release), the automation will now automatically add "external tester groups" to the build in TestFlight for you.

It will use the current content of the entries from the CHANGELOG.md1 for the "What to test" field in TestFlight when submitting to external testing, after removing the GitHub links from the bullet points.

Once this lands, I'll open a diff to remove the corresponding manual tasks from the MC Release Scenario, as they would not be necessary to carry out manually anymore:

  • "[ ] Watch for the #pocket-casts-dev-ios notification stating that the build has completed, then submit/distribute the build to testers on TestFlight](https://appstoreconnect.apple.com/apps/414834813/testflight/ios)" (Code Freeze and Intermediate Betas)
  • "[ ] Go to App Store Connect. Submit for testing review. Then, test with this build installed over current App Store build." (Final Build / finalize_release)

This PR also ensure that the GitHub Releases now use the latest content of the CHANGELOG.md1 (this time keeping the GitHub links).

To test

Not sure we can easily test this without doing an actual new beta.

I'm currently making this PR target trunk because I'll be on Support Rotation next week and AFK until EOY after that and thus unavailable to provide support in case anything would go wrong when testing those changes in production.

However, if there is a new beta planned for PCiOS before end of this week, I'd love to have this change cherry-picked onto release/7.79 so that we can use the occasion to validate it works as part of the beta (and I can address any issue if needed or revert if not enough time to address them) before adopting those improvements for the next MC Release Scenario sooner than later 🙂

Footnotes

  1. The automation now re-extracting the content of the CHANGELOG.md at the time the betas are created—instead of using on the ones that were extracted into release_notes.txt during code freeze—ensures that those will include any additional entries that might have been added to the CHANGELOG.md post code-freeze, e.g. entries for betafixes that landed in release/* since. 2

 - Automate adding external tester groups to the build after upload
 - Use the up-to-date content of the `CHANGELOG.md` for the "What to test" field in TestFlight, removing GitHub links from it.
@AliSoftware AliSoftware self-assigned this Dec 11, 2024
@AliSoftware AliSoftware marked this pull request as ready for review December 11, 2024 20:53
@AliSoftware AliSoftware requested a review from a team as a code owner December 11, 2024 20:53
@AliSoftware AliSoftware requested review from SergioEstevao and a team and removed request for a team December 11, 2024 20:53
@AliSoftware AliSoftware added the [Type] Tooling Issues related to tooling: build tools, ruby, scripts, etc. label Dec 11, 2024
@AliSoftware AliSoftware added this to the 7.80 milestone Dec 11, 2024
fastlane/Fastfile Outdated Show resolved Hide resolved
fastlane/Fastfile Outdated Show resolved Hide resolved
gem 'fastlane-plugin-wpmreleasetoolkit', '~> 12.2'
gem 'fastlane-plugin-wpmreleasetoolkit', '~> 12.4'
Copy link
Contributor Author

@AliSoftware AliSoftware Dec 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ This update is in particular to be able to benefit from this fix on extract_release_notes_for_version

Co-authored-by: Spencer Transier <[email protected]>
Copy link
Contributor

@spencertransier spencertransier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I verified the names of the external tester group names and that the regex is properly removing the GitHub links from the changelog.

@AliSoftware
Copy link
Contributor Author

Thanks for the quick review and testing @spencertransier !

⏸️ FYI I'll hold on merging this PR until I have a diff for the MC Release Scenario ready to land with corresponding changes (i.e. removal of now-obsolete manual tasks)

@leandroalonso
Copy link
Member

@AliSoftware quick question unrelated to this change: are we removing the Slack notifications? While we don't need to follow the steps anymore it would be cool to keep receiving them because it's a signal everything went smoothly. :)

@AliSoftware
Copy link
Contributor Author

AliSoftware commented Dec 11, 2024

are we removing the Slack notifications? While we don't need to follow the steps anymore it would be cool to keep receiving them because it's a signal everything went smoothly. :)

There's no plan to remove those notifications 🙂
In fact, I've recently updated the message of those notifications to remove the instructions from the message (because those instructions were already in the Release Scenario anyway, and better only keep a single source of truth).

So they'll still be sent, they'll just be shorter since without the instructions anymore 🙂

Note that even once this PR lands, steps for submitting the final build for review to ASC are still manual for now, as for those you need to copy the final release notes from the P2 comment while submitting and CI don't have them. I plan to automate that submission too in a follow-up PR (prompting you to paste the copy from P2 when you'll run the lane)… though not sure I will have time to land that one before I go EOY-AFK this Friday… we'll see)

@AliSoftware
Copy link
Contributor Author

ℹ️ Corresponding Scenario diff created (internal ref: D168562-code). Once it's approved I'll land both this PR and the scenario diff in concert.

@AliSoftware AliSoftware merged commit 01a2f0d into trunk Dec 13, 2024
4 of 6 checks passed
@AliSoftware AliSoftware deleted the tooling/automate-submit-to-testers branch December 13, 2024 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Tooling Issues related to tooling: build tools, ruby, scripts, etc.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants