Hey, thanks a lot for sharing this — that workflow sounds really clean, and I appreciate you taking the time to explain it.
Your develop → test builds and main → release builds setup really resonates with what I’m aiming for long-term. Right now though, I’m still fighting through the foundations 😅
I’m currently setting up a CI pipeline on an Azure VM (Ubuntu 24.04) using Jenkins + Perforce to automate builds for an Unreal Engine project, with the final goal being Win64 builds published to Steam.
Here’s where I’m stuck and would really love your perspective:
-
I’m building on Linux, but targeting Win64 eventually.
Right now I’m compiling a Linux client/editor first just to stabilize the pipeline — but I’m running into a mix of:-
platform-specific C++ issues (Windows-only includes, missing headers on Linux)
-
Unreal AutomationTool / UBT failures after long build times
-
cases where things work fine on Windows locally, but break in Linux CI
-
So I’m trying to figure out:
-
Is building a Linux client first on a Linux CI server the right stepping stone, even if the real target is Win64 + Steam?
-
Or did you find it better to jump straight into Windows builds (Windows runner / VM) once CI basics were in place?
I’m also curious about your experience with:
-
How you decided when a pipeline was “stable enough” to trust
-
Whether you had long compile times + late failures, and how you reduced iteration pain
-
Any early mistakes or architectural decisions you’d redo if starting again
At the moment, I’m intentionally keeping things simple:
-
Only automating main → Steam
-
No dev/release branch split yet, until the pipeline itself is reliable
If you’re open to it, I’d love to keep discussing this here — or even chat in real time (Discord works great for me). I’m still early on the DevOps side, but genuinely enjoying the challenge and trying to learn from people who’ve already walked this path.
Really appreciate you sharing your experience — this is exactly the kind of insight I was hoping for 🙏
Cheers!