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] Migrate Prototype Builds from App Center to Firebase App Distribution #24199

Open
wants to merge 4 commits into
base: trunk
Choose a base branch
from

Conversation

AliSoftware
Copy link
Contributor

@AliSoftware AliSoftware commented Mar 12, 2025

Description

This migrates the Prototype Builds to be uploaded to Firebase App Distribution instead of App Center.

This is done in the context of App Center shutting down at the end of the month.

Internal references:

  • pdnsEh-1zD-p2
  • paaHJt-7S2-p2
  • 186-gh-Automattic/apps-infra-plans

Release Timing

Important

We might want to wait before merging this until our internal documentation—about how to use our internal tools to enroll to Firebase App Distribution—has been updated.

Testing

  • Validate that there are 2 distinct PR comments, one for WordPress and one for Jetpack
  • Check that the information shown in each PR comment looks accurate, including the build number (expected to be set to the Buildkite build number) and version (expected to use the PR number)
  • Add yourself to the WP and JP Testing Groups via our MC tool (/mobile/firebase-app-distribution/testers/), then accept the invitation email you received
  • Scan the QR code in each PR comment with your iPhone and confirm you can install the prototype build on your device for each app

@@ -20,7 +20,6 @@ class ApiCredentials: NSObject {
// Other Services
static let tenorApiKey = ""
static let sentryDSN = ""
static let appCenterAppId = ""
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Once this PR lands, we might want to remove that constant from the actual Secrets-*.swift files in ~/.mobile-secrets (see .configure setup), as from a quick grep in the source code, this constant doesn't seem to be used anywhere in the codebase anymore.

@AliSoftware AliSoftware force-pushed the tooling/migrate-from-appcenter-to-fad branch from 73fb69b to 196a2d1 Compare March 12, 2025 17:18
Comment on lines -4 to -5
APPCENTER_PUBLIC_ID=<AppCenter Public Id>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Similarly, once this PR lands, we might want to remove that env var value from the actual project.env file in ~/.mobile-secrets (see .configure setup), as it doesn't seem used anymore either.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Mar 12, 2025

App Icon📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack
ConfigurationRelease-Alpha
Build Number26410
VersionPR #24199
Bundle IDcom.jetpack.alpha
Commit95ac031
Installation URL3ldgt8ainqqr0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot
Copy link
Contributor

wpmobilebot commented Mar 12, 2025

App Icon📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress
ConfigurationRelease-Alpha
Build Number26410
VersionPR #24199
Bundle IDorg.wordpress.alpha
Commit95ac031
Installation URL0h6497oq1odqo
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@AliSoftware AliSoftware self-assigned this Mar 12, 2025
@AliSoftware AliSoftware added the Tooling Build, Release, and Validation Tools label Mar 12, 2025
@AliSoftware AliSoftware modified the milestones: 25.9, 26.0 Mar 12, 2025
@AliSoftware AliSoftware marked this pull request as ready for review March 12, 2025 18:49
@AliSoftware AliSoftware requested a review from a team March 12, 2025 18:49
Copy link
Contributor

@twstokes twstokes left a comment

Choose a reason for hiding this comment

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

LGTM 🚀

@AliSoftware AliSoftware force-pushed the tooling/migrate-from-appcenter-to-fad branch from 5b6bc02 to 95ac031 Compare March 19, 2025 21:02
Comment on lines -408 to -414
# Attach version information as Buildkite metadata and annotation
appcenter_id = lane_context.dig(SharedValues::APPCENTER_BUILD_INFORMATION, 'id')
metadata = versions.merge(build_type: 'Prototype', 'appcenter:id': appcenter_id)
buildkite_metadata(set: metadata)
appcenter_install_url = "https://install.appcenter.ms/orgs/#{APPCENTER_OWNER_NAME}/apps/#{appcenter_app_name}/releases/#{appcenter_id}"
list = metadata.map { |k, v| " - **#{k}**: #{v}" }.join("\n")
buildkite_annotate(context: "appcenter-info-#{output_app_name}", style: 'info', message: "#{output_app_name} [App Center Build](#{appcenter_install_url}) Info:\n\n#{list}")
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure how useful this in fact is, but I was wondering if anyone would miss the Buildkite annotation / metadata?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, in some repos I've kept them, in others I've removed them… not sure about it tbh.

Though this might also depend if people use the new Build UI from Buildkite or the classic one, given how annotations are shown a bit differently on the 2 UIs, and are more discreet on the new UI… which could either be in favor of keeping them (they won't hurt and not take extra space anyway) or removing them (who is going to check the annotations instead of clicking on the link to the GitHub PR to see the link to those in the PR comment anyway?

Ultimately I considered those were not that useful, especially for Prototype Builds (as keeping them would mean every single CI build would have an annotation, since every single commit generates a Prototype Build… for little benefit IMHO).

If I'm not mistaken, ultimately the only place/repos for which I kept those annotations are for Alpha and Betas builds, and only for products which are sending those to FAD (which to this day is only the case for Tumblr iOS & Android), given those alpha/beta builds are not attached to a PR so it felt useful to have the FAD link as annotation for those.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ultimately I considered those were not that useful, especially for Prototype Builds

Makes sense 👍

only the case for Tumblr iOS & Android, given those alpha/beta builds are not attached to a PR so it felt useful to have the FAD link as annotation for those

Indeed 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tooling Build, Release, and Validation Tools
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants