You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
allowed-build-ids: [] # Optional — restrict target builds (skipped when targeting current build)
506
517
name-prefix: ""# Optional — prepended to the agent-supplied artifact name
518
+
require-unique-names: false # Optional — see "Reusing artifact names" below
507
519
max: 3# Maximum per run (default: 3)
508
520
```
509
521
522
+
**Reusing artifact names within one agent run:**
523
+
By default, the same `artifact_name` may be reused across multiple
524
+
`upload-pipeline-artifact`calls in one run (e.g. publishing a `TriageSummary`
525
+
to many failing builds at once). The executor inserts a short hash suffix
526
+
(`{artifact_name}__{6 hex}`) into the **internal container folder name** so
527
+
the calls don't silently overwrite each other's bytes in the agent's shared
528
+
build container. The hash lives only in internal addressing — it does not
529
+
appear in the `record.name` your downstream consumers query for, in the web UI
530
+
"Download as zip"filename, or in the contents of files extracted by the
531
+
`DownloadBuildArtifacts@1`/ `DownloadPipelineArtifact@2` tasks (all of which
532
+
strip the container folder prefix).
533
+
534
+
Set `require-unique-names: true` to use a clean container folder
535
+
(`{artifact_name}` only, no suffix) and reject in-run reuse of
536
+
`(effective_build_id, artifact_name)`with a clear early error before any HTTP
537
+
call. Use this when you guarantee one artifact per name per run and want the
538
+
shortest possible internal addressing.
539
+
540
+
Two records with the same `name` on the **same** target build still collide at
541
+
the record level (ADO returns 409 from the associate call) regardless of this
542
+
setting; use distinct `artifact_name` values when targeting one build with
543
+
multiple uploads.
544
+
510
545
**Notes:**
511
546
- Single-file only; directory uploads are not supported.
512
547
- When `build_id` is omitted and `allowed-build-ids` is configured, the allow-list check is skipped — the current build is implicitly trusted.
513
-
- Requires `SYSTEM_TEAMPROJECTID` to be available in the execution environment (set automatically by Azure DevOps).
548
+
- Requires `BUILD_CONTAINERID`, `BUILD_BUILDID`, and `SYSTEM_TEAMPROJECTID` (all set automatically inside an Azure DevOps pipeline job) and `vso.build_execute` scope on the executor's token (the existing write service connection provides this).
514
549
515
550
### cache-memory (moved to `tools:`)
516
551
Memory is now configured as a first-class tool under `tools: cache-memory:` instead of `safe-outputs: memory:`. See the [Cache Memory section](./tools.md#cache-memory-cache-memory) in `docs/tools.md` for details.
0 commit comments