Unreal Engine 4 Continuous Integration helper functionality
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ue4helpers
.gitignore
LICENSE
README.md
setup.py

README.md

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.

Development of this package was funded by Deepdrive, Inc.