mirror of
https://github.com/game-ci/unity-builder.git
synced 2026-06-12 00:43:55 -07:00
chore: add integration branch update scripts for release/lts-2.0.0
This commit is contained in:
@@ -0,0 +1,124 @@
|
|||||||
|
# delete-me-update-all-integration-branches.ps1
|
||||||
|
# Updates ALL integration branches from their component branches.
|
||||||
|
# Run from any branch -- it will stash changes, update each integration branch, then return.
|
||||||
|
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
$originalBranch = git rev-parse --abbrev-ref HEAD
|
||||||
|
$stashed = $false
|
||||||
|
|
||||||
|
# Stash any uncommitted changes
|
||||||
|
$status = git status --porcelain
|
||||||
|
if ($status) {
|
||||||
|
Write-Host "Stashing uncommitted changes..." -ForegroundColor Cyan
|
||||||
|
git stash push -m "auto-stash before integration branch update"
|
||||||
|
$stashed = $true
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Fetching all branches from origin..." -ForegroundColor Cyan
|
||||||
|
git fetch origin
|
||||||
|
|
||||||
|
$integrationBranches = @(
|
||||||
|
@{
|
||||||
|
Name = 'release/next-gen'
|
||||||
|
Branches = @(
|
||||||
|
'feature/test-workflow-engine'
|
||||||
|
'feature/hot-runner-protocol'
|
||||||
|
'feature/generic-artifact-system'
|
||||||
|
'feature/incremental-sync-protocol'
|
||||||
|
'feature/community-plugin-validation'
|
||||||
|
'feature/cli-support'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
@{
|
||||||
|
Name = 'release/lts-2.0.0'
|
||||||
|
Branches = @(
|
||||||
|
# Infrastructure
|
||||||
|
'feature/orchestrator-enterprise-support'
|
||||||
|
'feature/cloud-run-azure-providers'
|
||||||
|
'feature/provider-load-balancing'
|
||||||
|
'feature/orchestrator-unit-tests'
|
||||||
|
'fix/secure-git-token-usage'
|
||||||
|
'feature/premade-secret-sources'
|
||||||
|
'feature/ci-platform-providers'
|
||||||
|
'feature/build-reliability'
|
||||||
|
'ci/orchestrator-integrity-speedup'
|
||||||
|
# Next-gen
|
||||||
|
'feature/test-workflow-engine'
|
||||||
|
'feature/hot-runner-protocol'
|
||||||
|
'feature/generic-artifact-system'
|
||||||
|
'feature/incremental-sync-protocol'
|
||||||
|
'feature/community-plugin-validation'
|
||||||
|
'feature/cli-support'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ($integration in $integrationBranches) {
|
||||||
|
$name = $integration.Name
|
||||||
|
Write-Host "`n========================================" -ForegroundColor Cyan
|
||||||
|
Write-Host "Updating $name" -ForegroundColor Cyan
|
||||||
|
Write-Host "========================================" -ForegroundColor Cyan
|
||||||
|
|
||||||
|
# Check if branch exists locally
|
||||||
|
$exists = git branch --list $name
|
||||||
|
if (-not $exists) {
|
||||||
|
Write-Host "Creating local branch from origin/$name..." -ForegroundColor Yellow
|
||||||
|
git checkout -b $name "origin/$name"
|
||||||
|
} else {
|
||||||
|
git checkout $name
|
||||||
|
git pull origin $name --ff-only 2>$null
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
git pull origin $name --no-edit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$failed = @()
|
||||||
|
foreach ($branch in $integration.Branches) {
|
||||||
|
$remoteBranch = "origin/$branch"
|
||||||
|
# Check if remote branch exists
|
||||||
|
$refExists = git rev-parse --verify $remoteBranch 2>$null
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host " Skipping $branch (not found on remote)" -ForegroundColor DarkGray
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if already merged
|
||||||
|
$mergeBase = git merge-base HEAD $remoteBranch 2>$null
|
||||||
|
$remoteHead = git rev-parse $remoteBranch 2>$null
|
||||||
|
if ($mergeBase -eq $remoteHead) {
|
||||||
|
Write-Host " $branch - already up to date" -ForegroundColor DarkGray
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host " Merging $branch..." -ForegroundColor Yellow
|
||||||
|
$result = git merge $remoteBranch --no-edit 2>&1
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host " CONFLICT - skipped (resolve manually)" -ForegroundColor Red
|
||||||
|
$failed += $branch
|
||||||
|
git merge --abort
|
||||||
|
} else {
|
||||||
|
Write-Host " OK" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($failed.Count -gt 0) {
|
||||||
|
Write-Host "`n Conflicts in:" -ForegroundColor Red
|
||||||
|
$failed | ForEach-Object { Write-Host " - $_" -ForegroundColor Red }
|
||||||
|
}
|
||||||
|
|
||||||
|
# Push
|
||||||
|
Write-Host " Pushing $name to origin..." -ForegroundColor Cyan
|
||||||
|
git push origin $name
|
||||||
|
}
|
||||||
|
|
||||||
|
# Return to original branch
|
||||||
|
Write-Host "`nReturning to $originalBranch..." -ForegroundColor Cyan
|
||||||
|
git checkout $originalBranch
|
||||||
|
|
||||||
|
if ($stashed) {
|
||||||
|
Write-Host "Restoring stashed changes..." -ForegroundColor Cyan
|
||||||
|
git stash pop
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`nDone!" -ForegroundColor Green
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# delete-me-update-this-integration-branch.ps1
|
||||||
|
# Run this script from the repo root while on the release/lts-2.0.0 branch.
|
||||||
|
# It merges the latest from each component branch to keep this integration branch current.
|
||||||
|
# After running, review any conflicts, then commit and push.
|
||||||
|
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
|
||||||
|
$branchName = git rev-parse --abbrev-ref HEAD
|
||||||
|
if ($branchName -ne 'release/lts-2.0.0') {
|
||||||
|
Write-Error "Must be on release/lts-2.0.0 branch. Currently on: $branchName"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Component branches for this integration branch
|
||||||
|
$branches = @(
|
||||||
|
# Infrastructure
|
||||||
|
'feature/orchestrator-enterprise-support'
|
||||||
|
'feature/cloud-run-azure-providers'
|
||||||
|
'feature/provider-load-balancing'
|
||||||
|
'feature/orchestrator-unit-tests'
|
||||||
|
'fix/secure-git-token-usage'
|
||||||
|
'feature/premade-secret-sources'
|
||||||
|
'feature/ci-platform-providers'
|
||||||
|
'feature/build-reliability'
|
||||||
|
'ci/orchestrator-integrity-speedup'
|
||||||
|
# Next-gen
|
||||||
|
'feature/test-workflow-engine'
|
||||||
|
'feature/hot-runner-protocol'
|
||||||
|
'feature/generic-artifact-system'
|
||||||
|
'feature/incremental-sync-protocol'
|
||||||
|
'feature/community-plugin-validation'
|
||||||
|
'feature/cli-support'
|
||||||
|
)
|
||||||
|
|
||||||
|
Write-Host "Fetching latest from origin..." -ForegroundColor Cyan
|
||||||
|
git fetch origin
|
||||||
|
|
||||||
|
$failed = @()
|
||||||
|
foreach ($branch in $branches) {
|
||||||
|
Write-Host "`nMerging origin/$branch..." -ForegroundColor Yellow
|
||||||
|
$result = git merge "origin/$branch" --no-edit 2>&1
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
Write-Host " CONFLICT merging $branch - resolve manually" -ForegroundColor Red
|
||||||
|
$failed += $branch
|
||||||
|
# Abort this merge so we can continue with others
|
||||||
|
git merge --abort
|
||||||
|
} else {
|
||||||
|
Write-Host " Merged successfully" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($failed.Count -gt 0) {
|
||||||
|
Write-Host "`nThe following branches had conflicts and were skipped:" -ForegroundColor Red
|
||||||
|
$failed | ForEach-Object { Write-Host " - $_" -ForegroundColor Red }
|
||||||
|
Write-Host "`nRe-run after resolving, or merge them manually:" -ForegroundColor Yellow
|
||||||
|
$failed | ForEach-Object { Write-Host " git merge origin/$_" -ForegroundColor Yellow }
|
||||||
|
} else {
|
||||||
|
Write-Host "`nAll branches merged successfully!" -ForegroundColor Green
|
||||||
|
Write-Host "Run 'git push origin release/lts-2.0.0' to update the remote." -ForegroundColor Cyan
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user