Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Build Types

Astrid Avalin Soerensen edited this pageMay 9, 2025 ·5 revisions

📖 Build Types in CI/CD Pipeline

This page explains howbuild types are determined and used in the CI/CD pipeline. Build types control how the system interprets incoming events, what kind of build or release it should execute, and what outputs are produced.

The system supports three main build types:

Build TypeDescription
previewFor development, preview, or test builds (non-production)
release_candidateFor staging builds, e.g.,v1.2.3-rc.1
releaseFor final production releases, e.g.,v1.2.3

🔍 How Build Type Is Determined

The pipeline resolves the build type in the following order:


1️⃣ Tests-only Override

If the pipeline is run withTESTS_ONLY=true,
✅ italways forcesbuildType=preview.

This ensures that test-only runs don’t accidentally trigger release or candidate pipelines.


2️⃣ Manual Override

If amanual override is provided via input (BUILD_TYPE_OVERRIDE),
✅ it is acceptedonly if it’s one of:

  • preview
  • release_candidate
  • release

Invalid or unsupported types arenot allowed
because workflows are only dispatched byexplicit, validated choice
(e.g., through a manual dispatch form with dropdowns or options).
This guarantees no accidental or invalid values go in.


3️⃣ Automatic Detection (from event + ref)

When no manual override is present, the pipeline inspects theGitHub event type andgit ref:

GitHub EventGit Ref PatternResolved Build Type
pull_request(any)preview
pushrefs/tags/vX.Y.Z (e.g.,v1.2.3)release
pushrefs/tags/vX.Y.Z-rc.N (e.g.,v1.2.3-rc.1)release_candidate
pushanything else (branch pushes, etc.)preview
other events(fallback)preview

This ensures:

  • Pull requestsalways run as previews.
  • Tagged pushes (matching version or RC patterns)trigger releases.
  • Regular branch pushesdefault to previews.

⚠️ Semantic Versioning (SemVer) Requirements

The systemrequires SemVer-compliant tags for releases and release candidates:

Release Tags:

  • Must followvX.Y.Z (e.g.,v1.2.3)

Release Candidate Tags:

  • Should ideally followvX.Y.Z-rc.N (e.g.,v1.2.3-rc.1)
  • If you dispatch onlyv1.2.3 and setrelease_candidate as the build type,
    the systemcan automatically calculate the-rc.N suffix internally.

This allows flexible RC pipelines without requiring the exact RC tag to be inserted.


💡 Example Use Cases

Preview Build (Pull Request)
A developer opens a pull request →buildType=preview

Preview Build (Manual Dispatch)
A developer manually dispatches the workflow
and explicitly selectspreview from thebuildType dropdown →buildType=preview

Release Candidate (Manual Dispatch)
A developer manually dispatches the workflow
withbuildType=release_candidate and base versionv2.0.0 → system calculatesv2.0.0-rc.N

Release Candidate (Tag Push)
A tag likev2.0.0-rc.3 is pushed →buildType=release_candidate

Final Release (Manual Dispatch)
A developer manually dispatches the workflow
withbuildType=release and versionv2.0.0buildType=release

Final Release (Tag Push)
A tag likev2.0.0 is pushed →buildType=release


💬 Questions?

If you’re unsure which build type your workflow will resolve to, check:

  • The workflow logs → look for theResolved build type log line. In the dispatcher, you'll find it in thePrepare Metadata workflow.
  • The value of$BUILD_TYPE or$buildType in later workflow steps.

Let’s build better Unity pipelines together! 🚀
Need help? Join theDiscussions or open anIssue.

Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp