-
-
Notifications
You must be signed in to change notification settings - Fork 51
Migrate debug symbol upload to Python script #1114
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
Conversation
-e SENTRY_AUTH_TOKEN="$SENTRY_AUTH_TOKEN" \ | ||
-e SENTRY_ORG="$SENTRY_ORG" \ | ||
-e SENTRY_PROJECT="$SENTRY_PROJECT" \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There now is a org-auth-token that would allow us to omit the SENTRY_ORG
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also for Symbol upload?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let’s keep setting the organization explicitly for now as things could get confusing if the "wrong" token type is used.
id: run-tests | ||
env: | ||
EDITOR_BINARY: ${{ inputs.unreal-version == '4.27' && 'UE4Editor.exe' || 'UnrealEditor.exe' }} | ||
SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that getting used anywhere else?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the upload debug symbol python script, it's getting forwarded to docker environment
# Grant execute permissions to sentry-cli binary (FAB version of the plugin doesn't preserve file permissions) | ||
if [ -f "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand how this works. The .sh
does have permissions to grant permissions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It can grant permissions if the user running it has permissions to do so.
if [ -f "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64" ]; then | ||
chmod +x "$PLUGIN_DIR/Source/ThirdParty/CLI/sentry-cli-Linux-x86_64" | ||
fi | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Windows cross-compilation copies the crash handler, but the Linux-native script doesn't?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Manual crashpad
copying is only required when using the FAB version of the plugin. Since the Epic Games Launcher is not available on Linux, users can’t download the Sentry plugin from the FAB there, so this step isn’t needed for the native build.
Co-authored-by: Stefan Jandl <reg@bitfox.at>
This PR changes the debug symbol upload mechanism by replacing platform-specific shell scripts with a unified Python-based solution.
The proposed approach should make maintaining the symbol upload functionality easier and avoids the limitations encountered when attempting to implement the similar commandlet (#1076).
Note: Unreal Engine includes Python at
$(EngineDir)/Binaries/ThirdParty/Python3/
so plugin users don’t need to perform any additional environment configuration or install dependencies.Key changes:
upload-debug-symbols.sh
andupload-debug-symbols-win.bat
) with a single Python script (upload-debug-symbols.py
)post-build-steps-{platform}.sh/bat
) that handle plugin's binaries management and invoke the Python scriptSentry.uplugin
PostBuildSteps to use cleaner delegation pattern inspired earlier by the commandlet approachCloses #542
Closes #972