Skip to content

Latest commit

 

History

History
64 lines (49 loc) · 2.58 KB

File metadata and controls

64 lines (49 loc) · 2.58 KB

JenkinsLib

A Jenkins Shared Library for Breda University of Applied Sciences game development projects. Provides a modular, composable pipeline that supports UE5, Visual Studio, and CMake builds with multiple deployment targets.

Credit to DavidtKate/JenkinsSharedLib and Sigma-Erebus/JenkinsLib for providing part of the foundation upon which this is built.

Quick Start

@Library('JenkinsLib') _

stages {
    perforce.sync()
    ue5.build()
    // ue5.test()
    // steam.deploy()
    // itch.deploy()
    discord.alert()
}

Comment or uncomment modules to add or remove stages. All configuration is done via Jenkins UI parameters.

Matrix Builds

Build multiple platform/config combinations from a single Jenkinsfile using matrix():

stages {
    perforce.sync()
    matrix(UE5_BUILD_PLATFORM: ['Win64', 'PS4'],
           UE5_BUILD_CONFIG: ['Development', 'Shipping']) {
        ue5.build()
        only(UE5_BUILD_PLATFORM: 'Win64', UE5_BUILD_CONFIG: 'Shipping') {
            steam.deploy()
        }
    }
    discord.alert()
}

Stages outside the matrix run once; stages inside repeat for each combination. Use only() to restrict specific stages to certain combinations. See Matrix Builds for details.

Documentation

See the Wiki for full documentation:

  • Quick Start — Set up your first pipeline
  • Server Setup — Jenkins administration, plugins, security, credentials
  • Architecture — Module system, design principles, how to extend
  • Matrix Builds — Multi-axis builds for platform/config combinations

Stage Reference

Category Stages
Version Control perforce.sync(), git.sync()
Build ue5.build(), vs.build(), cmake.build()
Testing ue5.test(), vs.test(), cmake.test()
Deployment steam.deploy(), itch.deploy(), gdrive.deploy(), epic.deploy()
Code Review swarm.review()
Debug Symbols sentry.upload()
Notifications discord.alert()
Matrix matrix(), only()