12 Free GitHub Actions Concurrency Group Patterns That Wont Corrupt Unity Addressables Builds (2026)

12 Free GitHub Actions Concurrency Group Patterns That Wont Corrupt Unity Addressables Builds (2026)

<span style="font-weight: 600;">October–November 2026</span> Unity teams add <span style="font-style: italic;">concurrency: cancel-in-progress</span> to stop duplicate CI—then lint and Addressables player builds share one <span style="font-weight: 600;">group</span>. Cancel mid-catalog poisons <span style="font-style: italic;">Library/</span> while the next job stays green. This bookmark stack separates <span style="font-weight: 600;">official concurrency docs</span> from <span style="font-weight: 600;">cleanup CLIs</span> and GamineAI gates for <span style="font-style: italic;">ci_cancel_safe_receipt_v1.json</span>.<br><span style="color: #6366f1; font-weight: 600;">Beginner start:</span> GitHub concurrency docs + the twelve-pattern listicle; <span style="color: #059669; font-weight: 600;">Developer path:</span> never share one group between fast jobs and Addressables packaging—add post-cancel <span style="font-style: italic;">rm -rf Library</span>.

Official concurrency reference—workflow- and job-level group + cancel-in-progress semantics.
CTA: never share one group between lint and player packaging

YAML field map—where concurrency sits on workflow vs job; expressions for branch filters.
Pro tip: Addressables-exclusive job with cancel-in-progress: false

actions/checkout

Official Action

Fresh workspace after cancel—pair with Library wipe so half-written caches are not the only poison vector.
Fail when: cancel weeks skip clean checkout

actions/cache

Official Action

Library restore lane—cousin to cancel poison; bust keys after group moves (Resource false-green list).
Contrast: concurrency owns cancel boundaries; cache owns ContentState hash

Headless Unity packaging—run under a concurrency group that does not share lint cancel tokens.
Receipt: log job id in cancel_repro_log

Post-cancel cleanuprm -rf Library with if: always() after cancel-prone weeks.
Gate: Pattern 3 in the listicle cookbook

jq

CLI Tool

Receipt gate—require ci_cancel_safe_ok / addressables_build_exclusive_ok before promote.
CI check: jq -e .ci_cancel_safe_ok

JSON Schema

Validation

Receipt validation—schema for ci_cancel_safe_receipt_v1.json with concurrency group map + cancel repro row.
Reject: missing split-group proof

Printable YAML cookbook—twelve safe patterns, receipt sample, weekly audit map.
Format ladder: blog = patterns; this list = bookmarks

Ninety-second X1–X6 gate—split groups, post-cancel cleanup, fail-closed exclusive Addressables job.
Run before: Lesson 268 promotion

BUILD_RECEIPT milestone—promote ci_cancel_safe_receipt_v1.json after X1–X6.
Cousin: Lesson 261 cache-key column (not cancel)

Cache-bust sibling list—AddressablesContentState hash + weekly no-cache when cancel is not the poison class.
Order: concurrency split → cache key → 3-day ladder