Arcade runs CI/PR builds with --publish on. This does a general dry run of some parts of publishing. However, in this mode, packages are NOT published, as the azdo publishing target does not run if DotNetPublishUsingPipelines is false. This is false in non-official scenarios. installer is missing a check of this conditional for its custom installer publishing. Add it.
Note that we could probably remove the explicit use of PushToAzureDevOpsArtifacts in installer, by using `eng/Publishing.props` in a more typical workflow. See https://github.com/dotnet/aspnetcore/blob/main/eng/Publishing.props for an example of this. That would also avoid this bug.
- The stage has been subsumed by the aka.ms functionality and now can be removed.
- Clean up dead properties and functionality no longer needed because of it.
- Removing publishing of nupkg files as blobs. This used to be useful before because we often needed to get at the nupkgs in a flat, easy to copy format for pushing to the VS feed. But now the staging pipeline takes care of this, and moreover the use of post-build signing means that these files are not useful straight out of the build anyway. This should reduce publishing time and some post-build signing time.
Remove nupkg install in publishing.props
In our efforts to unify the build access story using aka.ms links, we have found that there are certain files that share the same name in multiple different repositories, most importantly, productVersion.txt. As part of the work to move to aka.ms links, we will be flattening the short link paths, so rather than having a runtime-specific, aspnetcore-specific, etc. full path to the files generated by each of the repos, they will all go to the same short link location. This means that the path to productVersion.txt will collide in the aka.ms links (the backing locations are not changing and will be unaffected). To combat this, we will add a duplicate of each of the product repos productVersion.txt, renamed to indicate which product repo it came from, in this case installer-productVersion.txt. The original will remane so that we do not break existing scenarios that do not use the aka.ms links.
Fixes post build signing so that the manifests are conformant with the requirement that items to sign should also appear in the artifacts section of a manifest.
* Enable post build signing
Enables post build signing of installer by including the items that need to be signed
post build in an ItemsToSignPostBuild item group and moving the file signing information
into the Signing.props files.
Changes to in-build signing have been verified by taking a drop with the current in-build
structure and comparing the the signatures and strong name keys between files
in equivalent builds.
* Enable post build signing
Enables post build signing of installer by including the items that need to be signed
post build in an ItemsToSignPostBuild item group and moving the file signing information
into the Signing.props files.
Changes to in-build signing have been verified by taking a drop with the current in-build
structure and comparing the the signatures and strong name keys between files
in equivalent builds.
Co-authored-by: dotnet-bot <dotnet-bot@dotnetfoundation.org>
Co-authored-by: Christopher Costa <chcosta@microsoft.com>
https://github.com/dotnet/arcade/pull/6051 fixed the issue where the install
scripts require matching names of files to directories. Remove the double
publish change introduced in 3.0
Co-authored-by: dotnet-bot <dotnet-bot@dotnetfoundation.org>
Set the asset manifest OS and change the name of the installers manifests.
Currently arcade defaults to using OS-Platform as the asset manifest file name.
Installer does a ton of building in docker containers, which ends up generating
many overlapping names. This is a symptom and also likely hiding some non-determinsm.
To fix, change the name of the blob asset manifest name to include a "-installers" suffix.
Then alter the property names around a bit so that AssetManifestOS is set
prior to publish.proj's publish target being run.
Makes the following artifacts non-shipping:
- template msis
- sdkplaceholders
- sdk-internal archives
For now these have been preserved as non-shipping rather than not published at all.
They all get packaged up in the VS insertion nupkgs, so I think in reality we don't need them at all.
* Publish productVersion sparsely
Do not publish the productVersion file in every leg. Publish only in win-x64,
so that we don't end up uploading it for every manifest. Publishing breaks in this scenario today.
This is a real bug in publishing, but we will probably tighten the restrictions in the
Publish to BAR step so that multi-publishign the same asset is an error.
Also remove the productCommit-* in cases where we have overlapping rids, which would cause the same problem
With newer versions of Microsoft.DotNet.Build.Tasks.Feed you don't need to pass a temporary path to the manifest. I.e., we can remove AssetsTemporaryDirectory and associated code.
* Simplify eng\publishing.props
With newer versions of Tasks.Feed and Arcade.SDK you don't need these lines.
* Let Arcade.SDK dictate the version of Tasks.Feed
* Publish SDK bits to a suffixed location
Also, when DropSuffix==true, copy all files that contain the stable sdk version to a file containing the non-stable file name
* Resolve named CAB collision; drop the CABs.
* Resolving naming convention warning: 8 chars plus {0} are allowed.
* Update src/redist/targets/packaging/windows/clisdk/dotnet.wxs
Co-Authored-By: Peter Huene <pehuene@microsoft.com>