Jenkins Build Server Solution Documentation

Components to Solution

Jenkins Web App

Hosted on a Dedicated Intel Mac host, it coordinates all build jobs and interactions.

  • Project Inheritance Plugin

    • Base iOS and Base Android jobs, other jobs inherit

  • Security Matrix

    • Lets us set fine-grained permissions for users and projects

Build Agents

Four Intel Mac Dedicated Hosts to perform builds and upload games to the App/Play Store

Configured to fetch a Pro Unity License from our Unity License server before executing each build.

Unity License Server

Hosted on an EC2 instance with an Elastic IP, this instance runs the Unity License Server executable that can be downloaded from the Unity Dashboard for our organization. Every year on May 31, we must download a new license file from the Unity Dashboard and import it into the License Server following their instructions.

Slack trigger

  • Lambda Function (jenkins-build-trigger-api-handler)

    • Receives initial request from Slack to list all projects that the Slack user has access to.

    • Receives request to initiate a build based on parameters from Slack user request

  • DynamoDB

    • jenkins-build-trigger-users

      • Contains list of Slack Members (and their slack IDs) and which Jenkins projects they should be allowed to build

    • jenkins-build-trigger-projects

      • Contains list of Jenkins projects and info about them for each platform (Android/iOS)

Supplemental documentation

Administration of Jenkins Slack Trigger

Screenshare Into Jenkins Build Agents

Common Jenkins Build Issues

Jenkins Slack App Usage Guide

Last updated