Cloud Build

Introduction

Lion Build Tools package reduces the time spent waiting for builds to complete on local workstations and helps ensure consistency across builds and by different developers. Our Cloud Build solutions will build your Unity game project for you while you can keep working.

This module offers the following features:

  • Trigger a build for iOS and Android from your Slack channel; see Jenkins Build-A-Bot SlackApp

  • Push builds directly to TestFlight, GooglePlay Internal Testing, and GoogleDrive

  • The Adapter Stabilizer verifies Ad Adapters are up-to-date; see: Adapter Stabilizer

Unity Integration

Prerequisites:

  • Supported Unity versions. (For other Unity versions, please contact Support Team)

    • 2021.3.25f1

    • 2021.3.33f1

    • 2022.3.19f1

    • 2022.3.29f1

    • 2022.3.58f1

  • Your Unity project needs to be hosted in Lion’s GitHub organization.

  • Your project must be using the default Gradle version associated with your Unity version (defined in the Version Compatibility List here). If you haven’t manually installed a gradle version, nothing to be worried about.

To trigger builds from Slack, you will also need to install our Jenkins Build-A-Bot SlackApp

Initial Setup

  • Our build servers will pull your Unity project directly from a specific git revision in GitHub. Ensure you have committed and pushed your changes to GitHub, as our servers won’t see local changes on your workstation. This also gives you a commit you can revert to in case of issues.

  • If the project’s keystore is not already present in the repo, add it (for example, in the root folder or a /keystore subfolder)

  • Create the folder named ProvisioningProfiles in the unity project root directory. Put your .mobileprovision files directly into the ProvisioningProfiles folder.

Configuring BuildTools

  • In the Project view, navigate to Assets/LionStudios/AutomatedBuilder/Editor

  • Fill up any relevant setting of ScriptableObjects:

    • Common Settings

      • Dev Additional Def Symbol: Define the symbol which will be added when Jenkins makes a debug build. Change this if you use a different symbol to separate your debug build code with #if define.

      • Scripts Folder: Change this if your code is in a different folder. This is only used to reimport the code, so any folder with at least one script will work.

    • iOS Settings

      • Target Name: Your project’s target name in XCode. If you are not sure about it, do not change it.

      • Organization: The organization in which the app is published, either Lion Studios, Lion Studios Plus or Hippotap

      • Provisioning Profile Name: The provisioning profile fileName without the .mobileprovision extension.

      • Additional Define Symbols: If your project requires more define symbols in iOS builds

      • Capabilities: Select the capabilities your project needs

      • If your game uses OneSignal:

        • Enable the Remote Notifications capability

        • Enable the Using One Signal setting

        • Fill in OneSignal Provisional Profile Name: Provisioning Profile fileName without the .mobileprovision extension.

    • Android Settings

      • Keystore Path: The path to your project’s keystore file

      • Keystore Password: The password of the keystore

      • Keystore Alias: The alias to use in the keystore

      • Keystore Alias Password: The password for that alias

      • Additional Define Symbols: If your project requires additional define symbols in Android builds

FakeCMDargs Settings is not relevant. This will be deprecated.

  • Do a single local build to generate buildTools/exportOptions.plist.

Make sure that the Provisioning Profiles have already been put into the provisioning profile folder, without that, exportOptions.plist file will not get generated automatically.

  • Commit and push the following to your GitHub repository:

    • Packages/manifest.json

    • Your keystore file

    • buildTools/exportOptions.plist

    • The contents of the LionStudios/AutomatedBuilding/Editor folder

  • If you haven’t already, install our Jenkins Build-A-Bot.

  • Trigger Jenkins builds through Slack until all build issues are resolved and a successful build is available.

  • Instructions for triggering Slack builds: Jenkins Slack App Usage Guide

If a job fails, you should see a failure message with a link to the failed job in your Slack channel. Please click on the Open button and click on the Console Output to display the build logs.

For more information on common build problems, see Common Jenkins Build Issues. If you need additional help with Jenkins build issues, please contact Support Team.

Last updated