This commit is contained in:
2026-06-22 23:34:45 +09:30
parent 173ebfd8fd
commit de8225789d
+14 -90
View File
@@ -1,47 +1,32 @@
import jetbrains.buildServer.configs.kotlin.*
import jetbrains.buildServer.configs.kotlin.buildSteps.powerShell
import jetbrains.buildServer.configs.kotlin.buildSteps.script
version = "2026.1"
project {
description = "Unity CI pipeline with multi-target build fan-out"
description = "Unity CI pipeline (Windows + Android + extensible)"
// =========================
// CORE BUILD (shared logic)
// =========================
buildType(UnityBuildCore)
// =========================
// TRIGGERED BUILDS (fan-out)
// =========================
buildType(WindowsBuild)
buildType(AndroidBuild)
// Future-ready (disabled until you enable them)
buildType(MacBuild)
buildType(IOSBuild)
// Mac/iOS intentionally omitted until you have macOS agents
}
/**
* =========================
* CORE UNITY BUILD PIPELINE
* =========================
* This is the ONLY build that actually runs Unity.
* Everything else just sets parameters and depends on this.
* This is the only build that actually runs Unity.exe
*/
object UnityBuildCore : BuildType({
name = "Unity Build (Core)"
description = "Runs Unity with a selected target"
params {
// Default fallback (should never be used in real triggers)
param("unity.target", "")
// Optional CI metadata
param("build.configuration", "Release")
}
vcs {
@@ -51,7 +36,8 @@ object UnityBuildCore : BuildType({
steps {
powerShell {
name = "Run Unity Build"
name = "Build Unity"
scriptMode = file {
path = "ci/Build-Unity.ps1"
}
@@ -60,13 +46,6 @@ object UnityBuildCore : BuildType({
}
}
features {
// Ensures build log is captured cleanly
feature {
type = "xml-report-plugin"
}
}
artifactRules = """
Builds/** => builds.zip
""".trimIndent()
@@ -74,16 +53,13 @@ object UnityBuildCore : BuildType({
/**
* =========================
* WINDOWS BUILD ENTRYPOINT
* WINDOWS ENTRYPOINT
* =========================
* Triggered automatically on VCS changes
*/
object WindowsBuild : BuildType({
name = "Unity - Windows"
description = "Build Windows standalone"
params {
param("unity.target", "Windows")
}
@@ -93,7 +69,7 @@ object WindowsBuild : BuildType({
}
steps {
// Snapshot dependency ensures correct ordering
// no-op (build happens in dependency)
}
dependencies {
@@ -109,15 +85,13 @@ object WindowsBuild : BuildType({
/**
* =========================
* ANDROID BUILD ENTRYPOINT
* ANDROID ENTRYPOINT
* =========================
*/
object AndroidBuild : BuildType({
name = "Unity - Android"
description = "Build Android AAB/APK"
params {
param("unity.target", "Android")
}
@@ -126,6 +100,10 @@ object AndroidBuild : BuildType({
root(DslContext.settingsRoot)
}
steps {
// no-op (build happens in dependency)
}
dependencies {
snapshot(UnityBuildCore) {
onDependencyFailure = FailureAction.FAIL_TO_START
@@ -135,58 +113,4 @@ object AndroidBuild : BuildType({
artifactRules = """
Builds/Android/** => AndroidBuild.zip
""".trimIndent()
})
/**
* =========================
* MAC BUILD (future ready)
* =========================
* Requires macOS agent + Xcode
*/
object MacBuild : BuildType({
name = "Unity - Mac (Disabled)"
description = "Future macOS build target"
params {
param("unity.target", "Mac")
}
vcs {
root(DslContext.settingsRoot)
}
dependencies {
snapshot(UnityBuildCore) {}
}
enabled = false
})
/**
* =========================
* iOS BUILD (future ready)
* =========================
* Requires macOS agent + Xcode + provisioning profiles
*/
object IOSBuild : BuildType({
name = "Unity - iOS (Disabled)"
description = "Future iOS build target"
params {
param("unity.target", "iOS")
}
vcs {
root(DslContext.settingsRoot)
}
dependencies {
snapshot(UnityBuildCore) {}
}
enabled = false
})