Skip to content

hasretsariyer/Unity3d-Sample

Repository files navigation

Unity3d Build in Jenkins

Installations

Jenkins + Webhook Integration

  • Start ngrok via ngrok http 8080

  • Screen Shot 2021-10-27 at 20 24 11
  • Set webhook in githubScreen Shot 2021-10-27 at 19 08 33

Automated Unity Build in iOS

Create an editor method in Unity that does the iOS building

using UnityEditor;
using System.Collections.Generic;

class ExportTool {
    static void ExportXcodeProject() {

        EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTarget.iOS);

        EditorUserBuildSettings.symlinkLibraries = true;
        EditorUserBuildSettings.development = true;
        EditorUserBuildSettings.allowDebugging = true;

        string[] args = System.Environment.GetCommandLineArgs();
        string buildType = "";
        for (int i = 0; i < args.Length; i++) {
            if (args[i] == "-buildType") {
                buildType = args[i + 1];
                if (buildType == "Debug") {
                    EditorUserBuildSettings.iOSBuildConfigType = iOSBuildType.Debug;
                } else {
                    EditorUserBuildSettings.iOSBuildConfigType = iOSBuildType.Release;
                }
            }
        }

        List < string > scenes = new List < string > ();
        for (int i = 0; i < EditorBuildSettings.scenes.Length; i++) {
            if (EditorBuildSettings.scenes[i].enabled) {
                scenes.Add(EditorBuildSettings.scenes[i].path);
            }
        }

        BuildPipeline.BuildPlayer(scenes.ToArray(), "iOSProj", BuildTarget.iOS, BuildOptions.None);
    }
}

Parameters

Screen Shot 2021-10-27 at 20 34 28

File upload issue:

If i look in the workspace of the job, the file which was selected as a parameter hasn't bee uploaded into the workspace, this is the bug.

https://issues.jenkins.io/browse/JENKINS-47333

jenkins-infra/jenkins.io#2388

https://github.com/MarkEWaite/jenkins-bugs/blob/JENKINS-47333/Jenkinsfile#L11

Alternative solution: Added string parameter

Stages


    stages {
        stage('iOS Build') {
            steps {
              ...
            }
        }
        stage('iOS Archive & Update exportOptions.plist') {
            steps {
              ...
            }
        }

        stage('iOS iPA') {
            steps {
              ...
            }
        }
    }
    post {
        always {
            archiveArtifacts artifacts: 'outputFolder/**/*.*'
        }
        success {
            script {
              ...
            }
        }
    }
}

Additional Steps

ipa file is distributed via appcircle cli after successful build. Download appcircle cli -> https://github.com/appcircleio/appcircle-cli Screen Shot 2021-11-02 at 11 42 38

Jenkins Stage View

Screen Shot 2021-10-27 at 21 21 45

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published