Home - BredaUniversityGames/JenkinsLib GitHub Wiki
JenkinsLib
A Jenkins Shared Library for Breda University of Applied Sciences game development projects. Provides a modular, composable pipeline that supports UE5 and Visual Studio builds with multiple deployment targets.
Example Jenkinsfile
@Library('JenkinsLib') _
stages {
perforce.sync()
ue5.build()
ue5.test()
steam.deploy()
itch.deploy()
discord.alert()
}
Comment or uncomment modules to add or remove stages and their parameters. Each module can accept overrides for default parameter values:
stages {
perforce.sync(P4_HOST: 'ssl:custom.host:1666')
ue5.build(UE5_BUILD_CONFIG: 'Shipping')
steam.deploy()
discord.alert()
}
Documentation
Getting Started
- Quick Start - Set up your first pipeline in 5 minutes
- Server Setup - Jenkins server administration (plugins, security, agents)
- Credentials - Perforce tickets, Git PATs, SSH keys, GitHub Apps
Stage Reference
Pick one module from each category. Comment out what you don't need.
Version Control (pick one)
- perforce.sync() - Perforce/Helix Core
- git.sync() - Git/GitHub
Build (pick one)
- ue5.build() - Unreal Engine 5
- vs.build() - Visual Studio / MSBuild
Testing (optional, must match build engine)
- ue5.test() - UE5 Automation Tests
- vs.test() - CTest / GoogleTest
Deployment (optional, any combination)
- steam.deploy() - Steam via SteamCMD
- itch.deploy() - itch.io via Butler
- gdrive.deploy() - Google Drive upload
- epic.deploy() - Epic Games Store via BuildPatchTool
Code Review (optional)
- swarm.review() - Helix Swarm
Debug Symbols (optional)
- sentry.upload() - Sentry symbol upload
Notifications (optional)
- discord.alert() - Discord webhooks
Reference
- Architecture - Module system, design principles, how to extend