lacostej edited a comment on Bug JENKINS-20997

Timothy, maybe you haven't configured the build in your editor project properly.

Jenkins just script what you do in your editor script.

In my case, I always validate what my editor script does by adding Menu options and I run the editor script locally before running it on jenkins.

For example my editor script contains

[MenuItem ("Custom/CI/Build iOS")]
	static void PerformIOSBuild ()
	{   
		 Debug.Log("Calling custom build script for iOS");
		 string target_dir = APP_NAME + "_ios";
		 GenericBuild(SCENES, TARGET_DIR + "/" + target_dir, BuildTarget.iPhone, BuildOptions.None, true);
		 ZipWithoutData(target_dir, target_dir);
	}

	private static BuildOptions OverrideBuildOptionsWithUserSettings(BuildOptions _DefaultBuildOptions, bool _FirstRun) {
		BuildOptions buildOptions = _DefaultBuildOptions;
		// to preserve manual XCode project changes
		// only create this if the build was run once before
		// http://answers.unity3d.com/questions/236443/buildpipelinebuildplayer-misnames-pbxuser-file.html
		if(!_FirstRun) {
			buildOptions |= BuildOptions.AcceptExternalModificationsToPlayer;
		}
		if (EditorUserBuildSettings.webPlayerStreamed) {
			buildOptions |= BuildOptions.BuildAdditionalStreamedScenes;
		}
		if (EditorUserBuildSettings.webPlayerOfflineDeployment) {
			buildOptions |= BuildOptions.WebPlayerOfflineDeployment;
		}
		if (EditorUserBuildSettings.development)
		{
			buildOptions |= BuildOptions.Development;
		}
		if (EditorUserBuildSettings.connectProfiler)
		{
			buildOptions |= BuildOptions.ConnectWithProfiler;
		}
		if (EditorUserBuildSettings.allowDebugging)
		{
			buildOptions |= BuildOptions.AllowDebugging;
		}
		if (EditorUserBuildSettings.appendProject)
		{
			buildOptions |= BuildOptions.AcceptExternalModificationsToPlayer;
		}
		if (EditorUserBuildSettings.installInBuildFolder) {
			buildOptions |= BuildOptions.InstallInBuildFolder;
		}
#if UNITY_3_5
		buildOptions |= EditorUserBuildSettings.architectureFlags;
#endif
		return buildOptions;
	}

	static void GenericBuild(string[] scenes, string target_dir, BuildTarget build_target, BuildOptions build_options, bool override_options)
	{
		FileSystemUtil.EnsureParentExists(target_dir);
		if (EditorUserBuildSettings.activeBuildTarget != build_target) {
			EditorUserBuildSettings.SwitchActiveBuildTarget(build_target);
		}
		if (override_options) {
			bool FirstRun = !Directory.Exists(target_dir);
			build_options = OverrideBuildOptionsWithUserSettings(build_options, FirstRun);
		}
		Debug.Log("==> BuildOptions: " + build_options);
		string dir = System.IO.Path.GetDirectoryName(target_dir);
		PreProcess(dir);
		string res = BuildPipeline.BuildPlayer(scenes,target_dir,build_target,build_options);
		if (res.Length > 0) {
			throw new Exception("BuildPlayer failure: " + res);
		}
		PostProcess(dir);
	}

See https://github.com/jenkinsci/unity3d-plugin/commit/d792376afd67579f313043e7c701cf2559df02bd#diff-c5173bf2106c8aaf9f3885b16ec48b4bR174 for a full example.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to