In this lesson, you will learn how to orchestrate your Unreal Engine build pipeline so that every code commit automatically triggers a clean packaging process and smoke tests.
Up to this point, you have mastered the art of Unreal Automation Tool (UAT) and project packaging. However, running these commands manually is prone to human error and consumes valuable development time. Integrating Continuous Integration (CI) bridges this gap by offloading the build process to a dedicated server (like Jenkins, GitHub Actions, or GitLab CI) that monitors your repository.
Triggering Automated Builds
When you push code to your repository, the CI system detects the change and spins up an environment to execute your build scripts. Because you have already structured your project for command-line automation, you simply configure your CI configuration file (e.g., .github/workflows/main.yml) to invoke the RunUAT script.
A standard CI runner command looks like this:
RunUAT.bat BuildCookRun -project="ProjectName.uproject" -noP4 -platform=Win64 -clientconfig=Shipping -serverconfig=Shipping -cook -allmaps -build -stage -pak
Implementing Smoke Tests
Automated packaging is only half the battle; you must ensure the build is functional. After the packaging stage, your pipeline should trigger a "Smoke Test"—a series of automated tests that verify critical systems (like loading the main level or checking for essential assets) without human intervention. By using the AutomationSpec framework, you can tell the CI runner to execute these tests immediately after the build:
RunUAT.bat RunUnreal -project="ProjectName.uproject" -test="Project.SmokeTest"
If the smoke test fails, the CI system marks the commit as "broken" and sends an immediate notification to your team. This prevents "broken builds" from propagating through your environment, ensuring that your team is always working on a stable, verified version of the project. By automating this loop, you gain the confidence to iterate quickly on your foliage, lighting, and landscape systems, knowing that any regression will be caught instantly.
Key Takeaway: By automating your build and testing lifecycle via CI/CD, you eliminate manual build friction and ensure that every commit remains a deployable, high-quality increment of your world.