-
-
Notifications
You must be signed in to change notification settings - Fork 39
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
ci: heavy linux workload on ubuntu-latest-4-cores #658
Conversation
@tustanivsky any idea what's up? |
A problem I see already is that it'll run the build in series. Since we have 1 agent, and 3 parallel builds for it. |
After investigating this for a while I've figured out that there are some differences between the standard and large GitHub runners in terms of user configuration. On both of them we run agent on behalf of
At the same time UE docker container provided by Epic Games already has a sentry-unreal/.github/workflows/ci.yml Line 183 in 311b005
This step is required to install UE4 CLI that we're using later on to build the plugin and run tests. Since it's just a convenience utility for us I'll see if we can get rid of it and use the Unreal's build tools directly to avoid dealing with that matching UIDs issue. |
.github/workflows/ci.yml
Outdated
@@ -126,7 +126,7 @@ jobs: | |||
|
|||
test: | |||
name: Test UE ${{ matrix.unreal }} | |||
runs-on: ubuntu-latest | |||
runs-on: ubuntu-latest-4-cores-arm64 |
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.
@bitsandfoxes should we make this a matrix instead? So it runs on both 4-cores and 4-cores-arm64?
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.
Oh actually that won't work because there are not arm64 docker images for UE?
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
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 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.
Removing ue4cli
usages from the existing workflow spared us from creating additional user in docker container and allowed to avoid UIDs collision problem entirely.
Also, with this large GitHub runner we now can package the sample app in CI for all three UE version within a reasonable amount of time and without a risk to run out of space.
@bruno-garcia Are there any additional changes required within the scope of this PR beyond the introduction of the |
docker exec -w /workspace/checkout/${{ matrix.app }} unreal /home/ue4/UnrealEngine/Engine/Build/BatchFiles/RunUAT.sh BuildCookRun \ | ||
-project=/workspace/checkout/${{ matrix.app }}/SentryPlayground.uproject \ | ||
-archivedirectory=/workspace/checkout/${{ matrix.app }}/Builds \ | ||
-platform=Linux \ | ||
-nop4 \ | ||
-cook \ | ||
-build \ | ||
-stage \ | ||
-prereqss \ | ||
-package \ | ||
-archive | ||
docker exec -w /workspace/checkout/${{ matrix.app }} unreal bash -c " | ||
cp -r '/home/ue4/Library/Logs/Unreal Engine/LocalBuildLogs' Saved/Logs " | ||
docker exec -w /workspace/checkout/${{ matrix.app }} unreal /home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor \ | ||
/workspace/checkout/${{ matrix.app }}/SentryPlayground.uproject \ | ||
-ReportExportPath=/workspace/checkout/${{ matrix.app }}/Saved/Automation \ | ||
-ExecCmds="Automation RunTests Sentry;quit" \ | ||
-TestExit="Automation Test Queue Empty" \ | ||
-Unattended \ | ||
-NoPause \ | ||
-NoSplash \ | ||
-NullRHI | ||
-NullRHI |
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.
Could you explain what's going on here? If I read that right:
- We're first building the project via the
RunUAT.sh
but with all the flags. - We're copying some logs to somewhere else
- We're running some tests but from within the Editor
Do I get that right?
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, that's correct.
The ue4cli
tool handled all the flags internally so the corresponding command looked cleaner but since we had to get rid of it, we now must specify them explicitly.
Caching build logs can be useful if some issues during the sample packaging arise. This step was moved here as it has finally become possible for all supported UE versions (and not only for 4.27 as previously) to complete the packaging without the risk of running out of disk space.
To run tests we need the Editor executable, it's a common syntax for the corresponding command.
Merging this to move forward on it. |
Also fixes #473 (comment)
Looking at the large runner here, looks like we need to use the right name
#skip-changelog