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
Copy file name to clipboardExpand all lines: Documentation/CorePackages/Publishing.md
+9-76Lines changed: 9 additions & 76 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,32 +4,7 @@ This document describes the infrastructure provided by the Arcade SDK for publis
4
4
5
5
### What is V1 publishing?
6
6
7
-
The publishing infrastructure has multiple stage(s), these stages represent available channels. Only the stages corresponding to the default channel will execute. This is for arcade3.x only.
8
-
9
-
V1 came into existence when we branched for release/3.x in arcade. Main and arcade/3.x initially had the same publishing logic. Over time the publishing stage in arcade main evolved so that became V2 publishing.
All the 3.1 servicing branches of repos use this version of the infrastructure.
7
+
V1 is a legacy publishing infrastructure that is no longer utilized.
33
8
34
9
### What is V2 publishing?
35
10
@@ -45,6 +20,12 @@ Example from arcade-validation:
45
20
46
21

47
22
23
+
### What is V4 publishing (In Development)?
24
+
25
+
V4 publishing is functionally very similar to V3 publishing, with the following tweaks/breaking changes:
26
+
-**Stable symbol packages are no longer published to NuGet feeds** - https://github.com/dotnet/arcade/pull/15561 - Instead, symbol packages are always published to unique blob paths.
27
+
-**IsStable manifest bit no longer used to determine whether to create stable feeds** - https://github.com/dotnet/arcade/pull/15561 - Instead, CouldBeStable==true is used to determine whether to create these feeds, and identify which files should go on these feeds.
28
+
48
29
## Basic onboarding scenario for new repositories to the current publishing version (V3)
49
30
50
31
In order to use the new publishing mechanism, the easiest way to start is by turning your existing build pipeline into an AzDO YAML stage, and then making use of a YAML template ([eng/common/templates/post-build/post-build.yml](https://github.com/dotnet/arcade/blob/66175ebd3756697a3ca515e16cd5ffddc30582cd/eng/common/templates/post-build/post-build.yml)) provided by Arcade to use the default publishing stages. The process is explained below step by step.
@@ -90,41 +71,6 @@ These steps are needed for Arcade versions before `10.0.0`. After that, V3 is th
90
71
...
91
72
```
92
73
93
-
1. You'll also need to pass the below MSBuild property to the Arcade build scripts.
94
-
95
-
| Name | Value |
96
-
| ------------------------------ | ----- |
97
-
| /p:DotNetPublishUsingPipelines | true |
98
-
99
-
For example, if the repo has the following configuration for invoking `cibuild.cmd`:
1. Transform your existing build-definition to a single stage. Do that by nesting the current job definition(s) under the `stages` keyword. For instance, this example build definition with a single job definition:
129
75
130
76
```YAML
@@ -291,7 +237,7 @@ However, if for some reason the infra in the default publishing stages don't mee
291
237
292
238
**Note:** We strongly suggest that you discuss with the *.Net Engineering* team the intended use case for this before starting your work. We might be able to give other options.
Starting with Arcade SDK version **5.0.0-beta.20120.2** there is not support anymore for the old publishing infrastructure where the Arcade SDK handled publishing of all assets during the build stage. That means, that if:
297
243
@@ -304,16 +250,7 @@ Starting with Arcade SDK version **5.0.0-beta.20120.2** there is not support any
304
250
| DotNetPublishToBlobFeed |
305
251
| DotNetSymbolServerTokenMsdl |
306
252
| DotNetSymbolServerTokenSymWeb |
307
-
308
-
- **The build definition doesn't set `/p:DotNetPublishingUsingPipelines` or set it to false:** only symbols will be published and they will be controlled by the Arcade SDK. The build definition still needs to inform the `DotNetSymbolServerToken[Msdl/SymWeb]` properties, but the following properties aren't required anymore:
309
-
310
-
| Property |
311
-
| ----------------------------- |
312
-
| DotNetPublishBlobFeedKey |
313
-
| DotNetPublishBlobFeedUrl |
314
-
| DotNetPublishToBlobFeed |
315
-
316
-
Furthermore, starting with Arcade SDK version **5.0.0-beta.20120.2** the default value for the `DotNetArtifactsCategory` property is `.NETCore`, therefore you don't need to set that property anymore if you were setting it to `.NETCore`.
253
+
| DotNetPublishusingPipelines |
317
254
318
255
## Frequently Asked Questions
319
256
@@ -371,10 +308,6 @@ Yes, that's possible. You need to [use Darc to do that](https://github.com/dotne
371
308
372
309
Most frequent cause of this is that there is no Default Channel configured for the build. [Take a look here](https://github.com/dotnet/arcade/blob/ec191f3d706d740bc7a87fbb98d94d916f81f0cb/Documentation/Darc.md#get-default-channels) to see how to check that.
373
310
374
-
### Why do you need the DotNetPublishUsingPipelines parameter?
375
-
376
-
The `DotNetPublishUsingPipelines` is a flag that Arcade SDK uses to determine if the repo wants Maestro++ to control all aspects of publishing. If that parameter is not set (not advisable) Arcade SDK will only publish symbols produced by the build; publishing of other assets should be taken care of by the repo build definition.
377
-
378
311
### What's PackageArtifacts, BlobArtifacts, PdbArtifacts and ReleaseConfigs for?
379
312
380
313
- **PackageArtifacts**: contains all NuGet (.nupkg) packages to be published.
0 commit comments