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
-**`mds_package_validation`** — Validates signed SqlClient package; `dependsOn: build_dependent`; runs in parallel with Stage 4
38
38
39
+
Each build job copies PDB files into `$(JOB_OUTPUT)/symbols/` so they are included in the auto-published pipeline artifact alongside the NuGet packages in `$(JOB_OUTPUT)/packages/`.
40
+
39
41
Stage conditional rules:
40
42
- Wrap stages/jobs in `${{ if }}` compile-time conditionals based on build parameters
41
43
-`buildSqlClient` controls Stages 2, 3, validation, and Logging (when AKV is disabled)
-**`publish-nuget-package-job.yml`** — Reusable release job using OneBranch `templateContext.type: releaseJob` with `inputs` for artifact download; pushes via `NuGetCommand@2`
54
+
-**`publish-symbols-job.yml`** — Reusable symbols job: downloads a build artifact, locates PDBs under `symbols/`, and invokes `publish-symbols-step.yml`
52
55
53
56
When adding a new csproj-based package:
54
57
- Use `build-signed-csproj-package-job.yml` with appropriate `packageName`, `packageFullName`, `versionProperties`, and `downloadArtifacts`
55
58
- Add build and pack targets to `build.proj`
56
59
- Add version variables to `variables/common-variables.yml`
57
60
- Add artifact name variable to `variables/onebranch-variables.yml`
58
61
62
+
## Symbols Publishing Stage
63
+
64
+
- Defined in `stages/publish-symbols-stage.yml`; produces stage `publish_symbols`
65
+
- Entire stage excluded at compile time when `publishSymbols` is false
66
+
-`dependsOn` is conditional based on which `build*` parameters are set, mirroring the build stage dependency graph
67
+
- One job per package (`publish-symbols-job.yml`), each downloading its build artifact and publishing PDBs from `symbols/`
68
+
- Each package's PDBs are published separately with unique artifact names and version information
69
+
- Build jobs copy PDBs into `$(JOB_OUTPUT)/symbols/` so they are included in the auto-published artifact
70
+
- The `publish-symbols-step.yml` accepts a `symbolsFolder` parameter to point at the downloaded PDB location
71
+
- The publish step calls an extracted `publish-symbols.ps1` script with structured error handling and diagnostic logging
72
+
- Symbols publishing credentials come from the `Symbols Publishing` variable group
73
+
59
74
## Release Stage
60
75
61
76
- Defined in `stages/release-stages.yml`; produces stage `release_production` (official) or `release_test` (non-official) via `stageNameSuffix` parameter
@@ -98,8 +113,7 @@ When `isPreview` is true, pipeline resolves `effective*Version` variables to pre
98
113
- When adding a new package, add GA version, preview version, and assembly file version entries
99
114
100
115
Variable groups:
101
-
-`Release Variables` — release configuration (in `common-variables.yml`)
102
-
-`Symbols publishing` — symbol publishing credentials (in `common-variables.yml`)
116
+
-`Symbols Publishing` — symbol publishing credentials (in `onebranch-variables.yml`)
103
117
-`ESRP Federated Creds (AME)` — ESRP signing credentials (in `common-variables.yml`)
104
118
105
119
## Code Signing (ESRP)
@@ -115,15 +129,19 @@ Variable groups:
115
129
116
130
- TSA: enabled only in official pipeline; disabled in non-official to avoid spurious alerts
117
131
- ApiScan: enabled in both; currently `break: false` pending package registration
118
-
- Each build job sets `ob_sdl_apiscan_*` variables pointing to `$(Build.SourcesDirectory)/apiScan/<PackageName>/`
132
+
- Each build job sets `ob_sdl_apiscan_softwareFolder` to `$(JOB_OUTPUT)/assemblies` and `ob_sdl_apiscan_symbolsFolder`to `$(JOB_OUTPUT)/symbols`
119
133
- CodeQL, SBOM, Policheck (`break: true`): enabled in both pipelines
0 commit comments