Skip to content

maint(android): publish symbols to Sentry on release buildLevel 🦌#14490

Merged
mcdurdin merged 1 commit intomasterfrom
maint/android/14284-publish-sentry-symbols-on-release-buildlevel
Aug 20, 2025
Merged

maint(android): publish symbols to Sentry on release buildLevel 🦌#14490
mcdurdin merged 1 commit intomasterfrom
maint/android/14284-publish-sentry-symbols-on-release-buildlevel

Conversation

@mcdurdin
Copy link
Copy Markdown
Member

@mcdurdin mcdurdin commented Aug 11, 2025

Refactor the publish action for Android to ensure that symbols are published to Sentry for any 'release' buildLevel -- test releases and alpha/beta/stable releases.

Splits the publish action into publish-symbols and publish-play-store so that they can be run separately as needed, as symbols can be published for test builds, but play store is only touched for actual releases.

Note: examining the build logs and Sentry server state, it looks like the publish to Sentry has not been happening for quite a while, so this commit refactors the Sentry publishing code and establishes the fv-keyboards publish target also.

Fixes: #14284
Blocked-by: #14506
Build-bot: release
Test-bot: skip

Refactor the publish action for Android to ensure that symbols are
published to Sentry for any 'release' buildLevel -- test releases and
alpha/beta/stable releases.

Splits the publish action into `publish-symbols` and
`publish-play-store` so that they can be run separately as needed, as
symbols can be published for test builds, but play store is only touched
for actual releases.

Note: examining the build logs and Sentry server state, it looks like
the publish to Sentry has not been happening for quite a while, so this
commit refactors the Sentry publishing code and establishes the
fv-keyboards publish target also.

Fixes: #14284
Build-bot: release
Test-bot: skip
@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot bot commented Aug 11, 2025

User Test Results

Test specification and instructions

User tests are not required

@github-actions github-actions bot added android/ oem/ android/app/ oem/fv/ oem/fv/android/ resources/ maint Maintenance work -- continuous integration, build scripts, infrastructure labels Aug 11, 2025
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S9 milestone Aug 11, 2025
@mcdurdin mcdurdin changed the title maint(android): publish symbols to Sentry on release buildLevel maint(android): publish symbols to Sentry on release buildLevel 🦌 Aug 11, 2025
@mcdurdin
Copy link
Copy Markdown
Member Author

Wrinkle -- if an unsupported build target is provided to a child build, then builder ends up running build instead, which is not what is intended:

05:20:49     [android] publish-symbols:engine
05:20:49       [android] ## publish-symbols:engine starting...
05:20:49       [android/KMEA] child build, parameters: <--builder-child --deps publish-symbols>
05:20:49       [android/KMEA] [DEBUG] Parameter 'publish-symbols' is not supported, ignoring
05:20:49       [android/KMEA] build:engine

https://build.palaso.org/buildConfiguration/KeymanAndroid_TestPullRequests/567671?buildTab=log&focusLine=1563&logView=flowAware&linesState=169.1556.1560.1564.1663.1666

@darcywong00 darcywong00 modified the milestones: A19S9, A19S10 Aug 16, 2025
Base automatically changed from maint/mac/14287-skip-publishing-on-build-buildlevel to master August 19, 2025 08:43
@mcdurdin mcdurdin marked this pull request as ready for review August 19, 2025 11:04
"clean clean artifact directories" \
"build configure, build and test Keyman for Android"
"build configure, build and test Keyman for Android" \
"publish publish symbols to Sentry (for release buildLevel)"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we match the top level android/build.sh and use publish-symbols?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Hmm, this is the general action in the TC script which may have more publish events in the future, so let's leave it as publish.

Copy link
Copy Markdown
Contributor

@ermshiperete ermshiperete left a comment

Choose a reason for hiding this comment

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

LGTM

builder_echo "Making a Sentry release for tag $KEYMAN_VERSION_GIT_TAG"
sentry-cli upload-dif -p keyman-android --include-sources
sentry-cli releases -p keyman-android files $KEYMAN_VERSION_GIT_TAG upload-sourcemaps ./
fi
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The previous code also called sentry-cli releases finalize "$KEYMAN_VERSION_GIT_TAG". Do we no longer need that?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The finalize statement is called in sentry-control.inc.sh during the version increment / release build trigger. It should not be called in individual platform builds; I think this was just a vestigial issue in the Android build. It may not do any harm but it really isn't final at this point.

publish_symbols() {
if builder_is_ci_build && builder_is_ci_build_level_release; then
# TODO: what does publishSentry even do?
./gradlew $DAEMON_FLAG publishSentry
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Probably doesn't matter, but this used to run after the sentry-cli commands.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, as far as I can tell it needs to run before ... it may not do anything but running it afterwards is pretty useless.

@mcdurdin mcdurdin merged commit 2b0db1e into master Aug 20, 2025
8 checks passed
@mcdurdin mcdurdin deleted the maint/android/14284-publish-sentry-symbols-on-release-buildlevel branch August 20, 2025 13:20
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Aug 20, 2025
@keyman-server
Copy link
Copy Markdown
Collaborator

Changes in this pull request will be available for download in Keyman version 19.0.103-alpha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

android/app/ android/ maint Maintenance work -- continuous integration, build scripts, infrastructure oem/fv/android/ oem/fv/ oem/ resources/

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

maint(android): skip unnecessary release-build steps in Build-bot: build buildLevel

4 participants