Home

Awesome

UE4 Continuous Integration helper functionality

The ue4-ci-helpers Python package builds on the ue4cli and conan-ue4cli packages to provide infrastructure for Continuous Integration (CI) use cases for Unreal projects and plugins. It aims to simplify the process of writing platform-agnostic build scripts that can then be run as part of a CI pipeline.

Although the package works best inside the ue4-full Docker image produced by the ue4-docker project, the core functionality will work on any system where ue4cli has been correctly configured.

To install the package, run: pip install ue4-ci-helpers

A simple build script for packaging a nightly build of an Unreal project might look like so:

#!/usr/bin/env python3
from ue4helpers import ProjectPackager, VersionHelpers
from os.path import abspath, dirname

# Create our project packager
packager = ProjectPackager(
	
	# The root directory for the project
	# (This example assumes this script is in a subdirectory)
	root = dirname(dirname(abspath(__file__))),
	
	# Use the date of the most recent git commit as our version string
	version = VersionHelpers.from_git_commit(),
	
	# The filename template for our generated .zip file
	archive = '{name}-Nightly-{version}-{platform}',
	
	# Don't strip debug symbols from the packaged build
	strip_debug = False,
	
	# Don't strip manifest files from the packaged build
	strip_manifests = False
)

# Clean any previous build artifacts
packager.clean()

# Package the project
packager.package()

# Compress the packaged distribution
# (The CI system can then tag the generated .zip file as a build artifact)
packager.archive()

Check out the docstring for the constructor of the PackagerBase class to see the full list of supported parameters and their uses.

Legal

Copyright © 2019, Adam Rehn. Licensed under the MIT License, see the file LICENSE for details.

Initial development of this package was funded by Deepdrive, Inc.