diff --git a/README.md b/README.md
index 02d22a5a8..012af6aea 100644
--- a/README.md
+++ b/README.md
@@ -51,18 +51,18 @@ With development builds, internal NuGet feeds are necessary for some scenarios (
```
-| Platform | Master
(3.0.x Runtime) | Release/3.0.1XX
(3.0.x Runtime) | Release/3.0.100-preview8
(3.0.x Runtime) | Release/2.2.3XX
(2.2.x Runtime) | Release/2.2.2XX
(2.2.x Runtime) | Release/2.2.1XX
(2.2.x Runtime) | Release/2.1.7XX
(2.1.7 Runtime) | Release/2.1.6XX
(2.1.6 Runtime) | Release/2.1.5XX
(2.1.5 Runtime) |
+| Platform | Master
(3.0.x Runtime) | Release/3.0.1XX
(3.0.x Runtime) | Release/3.0.100-preview9
(3.0.x Runtime) | Release/2.2.3XX
(2.2.x Runtime) | Release/2.2.2XX
(2.2.x Runtime) | Release/2.2.1XX
(2.2.x Runtime) | Release/2.1.7XX
(2.1.7 Runtime) | Release/2.1.6XX
(2.1.6 Runtime) | Release/2.1.5XX
(2.1.5 Runtime) |
|---------|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|
-| **Windows x64** | [![][win-x64-badge-master]][win-x64-version-master]
[Installer][win-x64-installer-master] - [Checksum][win-x64-installer-checksum-master]
[zip][win-x64-zip-master] - [Checksum][win-x64-zip-checksum-master] | [![][win-x64-badge-3.0.1xx]][win-x64-version-3.0.1xx]
[Installer][win-x64-installer-3.0.1xx] - [Checksum][win-x64-installer-checksum-3.0.1xx]
[zip][win-x64-zip-3.0.1xx] - [Checksum][win-x64-zip-checksum-3.0.1xx] | [![][win-x64-badge-3.0.100-preview8]][win-x64-version-3.0.100-preview8]
[Installer][win-x64-installer-3.0.100-preview8] - [Checksum][win-x64-installer-checksum-3.0.100-preview8]
[zip][win-x64-zip-3.0.100-preview8] - [Checksum][win-x64-zip-checksum-3.0.100-preview8] | [![][win-x64-badge-2.2.3XX]][win-x64-version-2.2.3XX]
[Installer][win-x64-installer-2.2.3XX] - [Checksum][win-x64-installer-checksum-2.2.3XX]
[zip][win-x64-zip-2.2.3XX] - [Checksum][win-x64-zip-checksum-2.2.3XX] |[![][win-x64-badge-2.2.2XX]][win-x64-version-2.2.2XX]
[Installer][win-x64-installer-2.2.2XX] - [Checksum][win-x64-installer-checksum-2.2.2XX]
[zip][win-x64-zip-2.2.2XX] - [Checksum][win-x64-zip-checksum-2.2.2XX] |[![][win-x64-badge-2.2.1XX]][win-x64-version-2.2.1XX]
[Installer][win-x64-installer-2.2.1XX] - [Checksum][win-x64-installer-checksum-2.2.1XX]
[zip][win-x64-zip-2.2.1XX] - [Checksum][win-x64-zip-checksum-2.2.1XX] |[![][win-x64-badge-2.1.7XX]][win-x64-version-2.1.7XX]
[Installer][win-x64-installer-2.1.7XX] - [Checksum][win-x64-installer-checksum-2.1.7XX]
[zip][win-x64-zip-2.1.7XX] - [Checksum][win-x64-zip-checksum-2.1.7XX] | [![][win-x64-badge-2.1.6XX]][win-x64-version-2.1.6XX]
[Installer][win-x64-installer-2.1.6XX] - [Checksum][win-x64-installer-checksum-2.1.6XX]
[zip][win-x64-zip-2.1.6XX] - [Checksum][win-x64-zip-checksum-2.1.6XX] | [![][win-x64-badge-2.1.5XX]][win-x64-version-2.1.5XX]
[Installer][win-x64-installer-2.1.5XX] - [Checksum][win-x64-installer-checksum-2.1.5XX]
[zip][win-x64-zip-2.1.5XX] - [Checksum][win-x64-zip-checksum-2.1.5XX] |
-| **Windows x86** | [![][win-x86-badge-master]][win-x86-version-master]
[Installer][win-x86-installer-master] - [Checksum][win-x86-installer-checksum-master]
[zip][win-x86-zip-master] - [Checksum][win-x86-zip-checksum-master] | [![][win-x86-badge-3.0.1xx]][win-x86-version-3.0.1xx]
[Installer][win-x86-installer-3.0.1xx] - [Checksum][win-x86-installer-checksum-3.0.1xx]
[zip][win-x86-zip-3.0.1xx] - [Checksum][win-x86-zip-checksum-3.0.1xx] | [![][win-x86-badge-3.0.100-preview8]][win-x86-version-3.0.100-preview8]
[Installer][win-x86-installer-3.0.100-preview8] - [Checksum][win-x86-installer-checksum-3.0.100-preview8]
[zip][win-x86-zip-3.0.100-preview8] - [Checksum][win-x86-zip-checksum-3.0.100-preview8] | [![][win-x86-badge-2.2.3XX]][win-x86-version-2.2.3XX]
[Installer][win-x86-installer-2.2.3XX] - [Checksum][win-x86-installer-checksum-2.2.3XX]
[zip][win-x86-zip-2.2.3XX] - [Checksum][win-x86-zip-checksum-2.2.3XX] |[![][win-x86-badge-2.2.2XX]][win-x86-version-2.2.2XX]
[Installer][win-x86-installer-2.2.2XX] - [Checksum][win-x86-installer-checksum-2.2.2XX]
[zip][win-x86-zip-2.2.2XX] - [Checksum][win-x86-zip-checksum-2.2.2XX] |[![][win-x86-badge-2.2.1XX]][win-x86-version-2.2.1XX]
[Installer][win-x86-installer-2.2.1XX] - [Checksum][win-x86-installer-checksum-2.2.1XX]
[zip][win-x86-zip-2.2.1XX] - [Checksum][win-x86-zip-checksum-2.2.1XX] |[![][win-x86-badge-2.1.7XX]][win-x86-version-2.1.7XX]
[Installer][win-x86-installer-2.1.7XX] - [Checksum][win-x86-installer-checksum-2.1.7XX]
[zip][win-x86-zip-2.1.7XX] - [Checksum][win-x86-zip-checksum-2.1.7XX] | [![][win-x86-badge-2.1.6XX]][win-x86-version-2.1.6XX]
[Installer][win-x86-installer-2.1.6XX] - [Checksum][win-x86-installer-checksum-2.1.6XX]
[zip][win-x86-zip-2.1.6XX] - [Checksum][win-x86-zip-checksum-2.1.6XX] | [![][win-x86-badge-2.1.5XX]][win-x86-version-2.1.5XX]
[Installer][win-x86-installer-2.1.5XX] - [Checksum][win-x86-installer-checksum-2.1.5XX]
[zip][win-x86-zip-2.1.5XX] - [Checksum][win-x86-zip-checksum-2.1.5XX] |
-| **macOS** | [![][osx-badge-master]][osx-version-master]
[Installer][osx-installer-master] - [Checksum][osx-installer-checksum-master]
[tar.gz][osx-targz-master] - [Checksum][osx-targz-checksum-master] | [![][osx-badge-3.0.1xx]][osx-version-3.0.1xx]
[Installer][osx-installer-3.0.1xx] - [Checksum][osx-installer-checksum-3.0.1xx]
[tar.gz][osx-targz-3.0.1xx] - [Checksum][osx-targz-checksum-3.0.1xx] | [![][osx-badge-3.0.100-preview8]][osx-version-3.0.100-preview8]
[Installer][osx-installer-3.0.100-preview8] - [Checksum][osx-installer-checksum-3.0.100-preview8]
[tar.gz][osx-targz-3.0.100-preview8] - [Checksum][osx-targz-checksum-3.0.100-preview8] | [![][osx-badge-2.2.3XX]][osx-version-2.2.3XX]
[Installer][osx-installer-2.2.3XX] - [Checksum][osx-installer-checksum-2.2.3XX]
[tar.gz][osx-targz-2.2.3XX] - [Checksum][osx-targz-checksum-2.2.3XX] |[![][osx-badge-2.2.2XX]][osx-version-2.2.2XX]
[Installer][osx-installer-2.2.2XX] - [Checksum][osx-installer-checksum-2.2.2XX]
[tar.gz][osx-targz-2.2.2XX] - [Checksum][osx-targz-checksum-2.2.2XX] |[![][osx-badge-2.2.1XX]][osx-version-2.2.1XX]
[Installer][osx-installer-2.2.1XX] - [Checksum][osx-installer-checksum-2.2.1XX]
[tar.gz][osx-targz-2.2.1XX] - [Checksum][osx-targz-checksum-2.2.1XX] |[![][osx-badge-2.1.7XX]][osx-version-2.1.7XX]
[Installer][osx-installer-2.1.7XX] - [Checksum][osx-installer-checksum-2.1.7XX]
[tar.gz][osx-targz-2.1.7XX] - [Checksum][osx-targz-checksum-2.1.7XX] | [![][osx-badge-2.1.6XX]][osx-version-2.1.6XX]
[Installer][osx-installer-2.1.6XX] - [Checksum][osx-installer-checksum-2.1.6XX]
[tar.gz][osx-targz-2.1.6XX] - [Checksum][osx-targz-checksum-2.1.6XX] | [![][osx-badge-2.1.5XX]][osx-version-2.1.5XX]
[Installer][osx-installer-2.1.5XX] - [Checksum][osx-installer-checksum-2.1.5XX]
[tar.gz][osx-targz-2.1.5XX] - [Checksum][osx-targz-checksum-2.1.5XX] |
-| **Linux x64** | [![][linux-badge-master]][linux-version-master]
[DEB Installer][linux-DEB-installer-master] - [Checksum][linux-DEB-installer-checksum-master]
[RPM Installer][linux-RPM-installer-master] - [Checksum][linux-RPM-installer-checksum-master]
_see installer note below_1
[tar.gz][linux-targz-master] - [Checksum][linux-targz-checksum-master] | [![][linux-badge-3.0.1xx]][linux-version-3.0.1xx]
[DEB Installer][linux-DEB-installer-3.0.1xx] - [Checksum][linux-DEB-installer-checksum-3.0.1xx]
[RPM Installer][linux-RPM-installer-3.0.1xx] - [Checksum][linux-RPM-installer-checksum-3.0.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.0.1xx] - [Checksum][linux-targz-checksum-3.0.1xx] | [![][linux-badge-3.0.100-preview8]][linux-version-3.0.100-preview8]
[DEB Installer][linux-DEB-installer-3.0.100-preview8] - [Checksum][linux-DEB-installer-checksum-3.0.100-preview8]
[RPM Installer][linux-RPM-installer-3.0.100-preview8] - [Checksum][linux-RPM-installer-checksum-3.0.100-preview8]
_see installer note below_1
[tar.gz][linux-targz-3.0.100-preview8] - [Checksum][linux-targz-checksum-3.0.100-preview8] | [![][linux-badge-2.2.3xx]][linux-version-2.2.3xx]
[DEB Installer][linux-DEB-installer-2.2.3XX] - [Checksum][linux-DEB-installer-checksum-2.2.3XX]
[RPM Installer][linux-RPM-installer-2.2.3XX] - [Checksum][linux-RPM-installer-checksum-2.2.3XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.3XX] - [Checksum][linux-targz-checksum-2.2.3XX] |[![][linux-badge-2.2.2xx]][linux-version-2.2.2xx]
[DEB Installer][linux-DEB-installer-2.2.2XX] - [Checksum][linux-DEB-installer-checksum-2.2.2XX]
[RPM Installer][linux-RPM-installer-2.2.2XX] - [Checksum][linux-RPM-installer-checksum-2.2.2XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.2XX] - [Checksum][linux-targz-checksum-2.2.2XX] |[![][linux-badge-2.2.1xx]][linux-version-2.2.1xx]
[DEB Installer][linux-DEB-installer-2.2.1XX] - [Checksum][linux-DEB-installer-checksum-2.2.1XX]
[RPM Installer][linux-RPM-installer-2.2.1XX] - [Checksum][linux-RPM-installer-checksum-2.2.1XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.1XX] - [Checksum][linux-targz-checksum-2.2.1XX] |[![][linux-badge-2.1.7XX]][linux-version-2.1.7XX]
[DEB Installer][linux-DEB-installer-2.1.7XX] - [Checksum][linux-DEB-installer-checksum-2.1.7XX]
[RPM Installer][linux-RPM-installer-2.1.7XX] - [Checksum][linux-RPM-installer-checksum-2.1.7XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.7XX] - [Checksum][linux-targz-checksum-2.1.7XX] | [![][linux-badge-2.1.6XX]][linux-version-2.1.6XX]
[DEB Installer][linux-DEB-installer-2.1.6XX] - [Checksum][linux-DEB-installer-checksum-2.1.6XX]
[RPM Installer][linux-RPM-installer-2.1.6XX] - [Checksum][linux-RPM-installer-checksum-2.1.6XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.6XX] - [Checksum][linux-targz-checksum-2.1.6XX] | [![][linux-badge-2.1.5XX]][linux-version-2.1.5XX]
[DEB Installer][linux-DEB-installer-2.1.5XX] - [Checksum][linux-DEB-installer-checksum-2.1.5XX]
[RPM Installer][linux-RPM-installer-2.1.5XX] - [Checksum][linux-RPM-installer-checksum-2.1.5XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.5XX] - [Checksum][linux-targz-checksum-2.1.5XX] |
-| **Linux arm** | [![][linux-arm-badge-master]][linux-arm-version-master]
[tar.gz][linux-arm-targz-master] - [Checksum][linux-arm-targz-checksum-master] | [![][linux-arm-badge-3.0.1xx]][linux-arm-version-3.0.1xx]
[tar.gz][linux-arm-targz-3.0.1xx] - [Checksum][linux-arm-targz-checksum-3.0.1xx] | [![][linux-arm-badge-3.0.100-preview8]][linux-arm-version-3.0.100-preview8]
[tar.gz][linux-arm-targz-3.0.100-preview8] - [Checksum][linux-arm-targz-checksum-3.0.100-preview8] | [![][linux-arm-badge-2.2.3XX]][linux-arm-version-2.2.3XX]
[tar.gz][linux-arm-targz-2.2.3XX] - [Checksum][linux-arm-targz-checksum-2.2.3XX] |[![][linux-arm-badge-2.2.2XX]][linux-arm-version-2.2.2XX]
[tar.gz][linux-arm-targz-2.2.2XX] - [Checksum][linux-arm-targz-checksum-2.2.2XX] |[![][linux-arm-badge-2.2.1XX]][linux-arm-version-2.2.1XX]
[tar.gz][linux-arm-targz-2.2.1XX] - [Checksum][linux-arm-targz-checksum-2.2.1XX] |[![][linux-arm-badge-2.1.7XX]][linux-arm-version-2.1.7XX]
[tar.gz][linux-arm-targz-2.1.7XX] - [Checksum][linux-arm-targz-checksum-2.1.7XX] | [![][linux-arm-badge-2.1.6XX]][linux-arm-version-2.1.6XX]
[tar.gz][linux-arm-targz-2.1.6XX] - [Checksum][linux-arm-targz-checksum-2.1.6XX] | [![][linux-arm-badge-2.1.5XX]][linux-arm-version-2.1.5XX]
[tar.gz][linux-arm-targz-2.1.5XX] - [Checksum][linux-arm-targz-checksum-2.1.5XX] |
-| **Linux arm64** | [![][linux-arm64-badge-master]][linux-arm64-version-master]
[tar.gz][linux-arm64-targz-master] - [Checksum][linux-arm64-targz-checksum-master] | [![][linux-arm64-badge-3.0.1xx]][linux-arm64-version-3.0.1xx]
[tar.gz][linux-arm64-targz-3.0.1xx] - [Checksum][linux-arm64-targz-checksum-3.0.1xx] | [![][linux-arm64-badge-3.0.100-preview8]][linux-arm64-version-3.0.100-preview8]
[tar.gz][linux-arm64-targz-3.0.100-preview8] - [Checksum][linux-arm64-targz-checksum-3.0.100-preview8] | [![][linux-arm64-badge-2.2.3XX]][linux-arm64-version-2.2.3XX]
[tar.gz][linux-arm64-targz-2.2.3XX] - [Checksum][linux-arm64-targz-checksum-2.2.3XX] |[![][linux-arm64-badge-2.2.2XX]][linux-arm64-version-2.2.2XX]
[tar.gz][linux-arm64-targz-2.2.2XX] - [Checksum][linux-arm64-targz-checksum-2.2.2XX] |[![][linux-arm64-badge-2.2.1XX]][linux-arm64-version-2.2.1XX]
[tar.gz][linux-arm64-targz-2.2.1XX] - [Checksum][linux-arm64-targz-checksum-2.2.1XX] |[![][linux-arm64-badge-2.1.7XX]][linux-arm64-version-2.1.7XX]
[tar.gz][linux-arm64-targz-2.1.7XX] - [Checksum][linux-arm64-targz-checksum-2.1.7XX] | [![][linux-arm64-badge-2.1.6XX]][linux-arm64-version-2.1.6XX]
[tar.gz][linux-arm64-targz-2.1.6XX] - [Checksum][linux-arm64-targz-checksum-2.1.6XX] | [![][linux-arm64-badge-2.1.5XX]][linux-arm64-version-2.1.5XX]
[tar.gz][linux-arm64-targz-2.1.5XX] - [Checksum][linux-arm64-targz-checksum-2.1.5XX] |
-| **RHEL 6** | [![][rhel-6-badge-master]][rhel-6-version-master]
[tar.gz][rhel-6-targz-master] - [Checksum][rhel-6-targz-checksum-master] | [![][rhel-6-badge-3.0.1xx]][rhel-6-version-3.0.1xx]
[tar.gz][rhel-6-targz-3.0.1xx] - [Checksum][rhel-6-targz-checksum-3.0.1xx] | [![][rhel-6-badge-3.0.100-preview8]][rhel-6-version-3.0.100-preview8]
[tar.gz][rhel-6-targz-3.0.100-preview8] - [Checksum][rhel-6-targz-checksum-3.0.100-preview8] | [![][rhel-6-badge-2.2.3XX]][rhel-6-version-2.2.3XX]
[tar.gz][rhel-6-targz-2.2.3XX] - [Checksum][rhel-6-targz-checksum-2.2.3XX] | [![][rhel-6-badge-2.2.2XX]][rhel-6-version-2.2.2XX]
[tar.gz][rhel-6-targz-2.2.2XX] - [Checksum][rhel-6-targz-checksum-2.2.2XX] | [![][rhel-6-badge-2.2.1XX]][rhel-6-version-2.2.1XX]
[tar.gz][rhel-6-targz-2.2.1XX] - [Checksum][rhel-6-targz-checksum-2.2.1XX] | [![][rhel-6-badge-2.1.7XX]][rhel-6-version-2.1.7XX]
[tar.gz][rhel-6-targz-2.1.7XX] - [Checksum][rhel-6-targz-checksum-2.1.7XX] | [![][rhel-6-badge-2.1.6XX]][rhel-6-version-2.1.6XX]
[tar.gz][rhel-6-targz-2.1.6XX] - [Checksum][rhel-6-targz-checksum-2.1.6XX] | [![][rhel-6-badge-2.1.5XX]][rhel-6-version-2.1.5XX]
[tar.gz][rhel-6-targz-2.1.5XX] - [Checksum][rhel-6-targz-checksum-2.1.5XX] |
-| **Linux-musl** | [![][linux-musl-badge-master]][linux-musl-version-master]
[tar.gz][linux-musl-targz-master] - [Checksum][linux-musl-targz-checksum-master] | [![][linux-musl-badge-3.0.1xx]][linux-musl-version-3.0.1xx]
[tar.gz][linux-musl-targz-3.0.1xx] - [Checksum][linux-musl-targz-checksum-3.0.1xx] | [![][linux-musl-badge-3.0.100-preview8]][linux-musl-version-3.0.100-preview8]
[tar.gz][linux-musl-targz-3.0.100-preview8] - [Checksum][linux-musl-targz-checksum-3.0.100-preview8] | [![][linux-musl-badge-2.2.3XX]][linux-musl-version-2.2.3XX]
[tar.gz][linux-musl-targz-2.2.3XX] - [Checksum][linux-musl-targz-checksum-2.2.3XX] |[![][linux-musl-badge-2.2.2XX]][linux-musl-version-2.2.2XX]
[tar.gz][linux-musl-targz-2.2.2XX] - [Checksum][linux-musl-targz-checksum-2.2.2XX] |[![][linux-musl-badge-2.2.1XX]][linux-musl-version-2.2.1XX]
[tar.gz][linux-musl-targz-2.2.1XX] - [Checksum][linux-musl-targz-checksum-2.2.1XX] |[![][linux-musl-badge-2.1.7XX]][linux-musl-version-2.1.7XX]
[tar.gz][linux-musl-targz-2.1.7XX] - [Checksum][linux-musl-targz-checksum-2.1.7XX] | [![][linux-musl-badge-2.1.6XX]][linux-musl-version-2.1.6XX]
[tar.gz][linux-musl-targz-2.1.6XX] - [Checksum][linux-musl-targz-checksum-2.1.6XX] | [![][linux-musl-badge-2.1.5XX]][linux-musl-version-2.1.5XX]
[tar.gz][linux-musl-targz-2.1.5XX] - [Checksum][linux-musl-targz-checksum-2.1.5XX] |
-| **Windows arm** | [![][win-arm-badge-master]][win-arm-version-master]
[zip][win-arm-zip-master] - [Checksum][win-arm-zip-checksum-master] | [![][win-arm-badge-3.0.1xx]][win-arm-version-3.0.1xx]
[zip][win-arm-zip-3.0.1xx] - [Checksum][win-arm-zip-checksum-3.0.1xx] | [![][win-arm-badge-3.0.100-preview8]][win-arm-version-3.0.100-preview8]
[zip][win-arm-zip-3.0.100-preview8] - [Checksum][win-arm-zip-checksum-3.0.100-preview8] | [![][win-arm-badge-2.2.3XX]][win-arm-version-2.2.3XX]
[zip][win-arm-zip-2.2.3XX] - [Checksum][win-arm-zip-checksum-2.2.3XX] | [![][win-arm-badge-2.2.2XX]][win-arm-version-2.2.2XX]
[zip][win-arm-zip-2.2.2XX] - [Checksum][win-arm-zip-checksum-2.2.2XX] | [![][win-arm-badge-2.2.1XX]][win-arm-version-2.2.1XX]
[zip][win-arm-zip-2.2.1XX] - [Checksum][win-arm-zip-checksum-2.2.1XX] | **N/A** | **N/A** | **N/A** |
-| **FreeBSD x64** | [![][freebsd-x64-badge-master]][freebsd-x64-version-master]
[tar.gz][freebsd-x64-zip-master] - [Checksum][freebsd-x64-zip-checksum-master] | [![][freebsd-x64-badge-3.0.1xx]][freebsd-x64-version-3.0.1xx]
[tar.gz][freebsd-x64-zip-3.0.1xx] - [Checksum][freebsd-x64-zip-checksum-3.0.1xx] | [![][freebsd-x64-badge-3.0.100-preview8]][freebsd-x64-version-3.0.100-preview8]
[tar.gz][freebsd-x64-zip-3.0.100-preview8] - [Checksum][freebsd-x64-zip-checksum-3.0.100-preview8] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** |
+| **Windows x64** | [![][win-x64-badge-master]][win-x64-version-master]
[Installer][win-x64-installer-master] - [Checksum][win-x64-installer-checksum-master]
[zip][win-x64-zip-master] - [Checksum][win-x64-zip-checksum-master] | [![][win-x64-badge-3.0.1xx]][win-x64-version-3.0.1xx]
[Installer][win-x64-installer-3.0.1xx] - [Checksum][win-x64-installer-checksum-3.0.1xx]
[zip][win-x64-zip-3.0.1xx] - [Checksum][win-x64-zip-checksum-3.0.1xx] | [![][win-x64-badge-3.0.100-preview9]][win-x64-version-3.0.100-preview9]
[Installer][win-x64-installer-3.0.100-preview9] - [Checksum][win-x64-installer-checksum-3.0.100-preview9]
[zip][win-x64-zip-3.0.100-preview9] - [Checksum][win-x64-zip-checksum-3.0.100-preview9] | [![][win-x64-badge-2.2.3XX]][win-x64-version-2.2.3XX]
[Installer][win-x64-installer-2.2.3XX] - [Checksum][win-x64-installer-checksum-2.2.3XX]
[zip][win-x64-zip-2.2.3XX] - [Checksum][win-x64-zip-checksum-2.2.3XX] |[![][win-x64-badge-2.2.2XX]][win-x64-version-2.2.2XX]
[Installer][win-x64-installer-2.2.2XX] - [Checksum][win-x64-installer-checksum-2.2.2XX]
[zip][win-x64-zip-2.2.2XX] - [Checksum][win-x64-zip-checksum-2.2.2XX] |[![][win-x64-badge-2.2.1XX]][win-x64-version-2.2.1XX]
[Installer][win-x64-installer-2.2.1XX] - [Checksum][win-x64-installer-checksum-2.2.1XX]
[zip][win-x64-zip-2.2.1XX] - [Checksum][win-x64-zip-checksum-2.2.1XX] |[![][win-x64-badge-2.1.7XX]][win-x64-version-2.1.7XX]
[Installer][win-x64-installer-2.1.7XX] - [Checksum][win-x64-installer-checksum-2.1.7XX]
[zip][win-x64-zip-2.1.7XX] - [Checksum][win-x64-zip-checksum-2.1.7XX] | [![][win-x64-badge-2.1.6XX]][win-x64-version-2.1.6XX]
[Installer][win-x64-installer-2.1.6XX] - [Checksum][win-x64-installer-checksum-2.1.6XX]
[zip][win-x64-zip-2.1.6XX] - [Checksum][win-x64-zip-checksum-2.1.6XX] | [![][win-x64-badge-2.1.5XX]][win-x64-version-2.1.5XX]
[Installer][win-x64-installer-2.1.5XX] - [Checksum][win-x64-installer-checksum-2.1.5XX]
[zip][win-x64-zip-2.1.5XX] - [Checksum][win-x64-zip-checksum-2.1.5XX] |
+| **Windows x86** | [![][win-x86-badge-master]][win-x86-version-master]
[Installer][win-x86-installer-master] - [Checksum][win-x86-installer-checksum-master]
[zip][win-x86-zip-master] - [Checksum][win-x86-zip-checksum-master] | [![][win-x86-badge-3.0.1xx]][win-x86-version-3.0.1xx]
[Installer][win-x86-installer-3.0.1xx] - [Checksum][win-x86-installer-checksum-3.0.1xx]
[zip][win-x86-zip-3.0.1xx] - [Checksum][win-x86-zip-checksum-3.0.1xx] | [![][win-x86-badge-3.0.100-preview9]][win-x86-version-3.0.100-preview9]
[Installer][win-x86-installer-3.0.100-preview9] - [Checksum][win-x86-installer-checksum-3.0.100-preview9]
[zip][win-x86-zip-3.0.100-preview9] - [Checksum][win-x86-zip-checksum-3.0.100-preview9] | [![][win-x86-badge-2.2.3XX]][win-x86-version-2.2.3XX]
[Installer][win-x86-installer-2.2.3XX] - [Checksum][win-x86-installer-checksum-2.2.3XX]
[zip][win-x86-zip-2.2.3XX] - [Checksum][win-x86-zip-checksum-2.2.3XX] |[![][win-x86-badge-2.2.2XX]][win-x86-version-2.2.2XX]
[Installer][win-x86-installer-2.2.2XX] - [Checksum][win-x86-installer-checksum-2.2.2XX]
[zip][win-x86-zip-2.2.2XX] - [Checksum][win-x86-zip-checksum-2.2.2XX] |[![][win-x86-badge-2.2.1XX]][win-x86-version-2.2.1XX]
[Installer][win-x86-installer-2.2.1XX] - [Checksum][win-x86-installer-checksum-2.2.1XX]
[zip][win-x86-zip-2.2.1XX] - [Checksum][win-x86-zip-checksum-2.2.1XX] |[![][win-x86-badge-2.1.7XX]][win-x86-version-2.1.7XX]
[Installer][win-x86-installer-2.1.7XX] - [Checksum][win-x86-installer-checksum-2.1.7XX]
[zip][win-x86-zip-2.1.7XX] - [Checksum][win-x86-zip-checksum-2.1.7XX] | [![][win-x86-badge-2.1.6XX]][win-x86-version-2.1.6XX]
[Installer][win-x86-installer-2.1.6XX] - [Checksum][win-x86-installer-checksum-2.1.6XX]
[zip][win-x86-zip-2.1.6XX] - [Checksum][win-x86-zip-checksum-2.1.6XX] | [![][win-x86-badge-2.1.5XX]][win-x86-version-2.1.5XX]
[Installer][win-x86-installer-2.1.5XX] - [Checksum][win-x86-installer-checksum-2.1.5XX]
[zip][win-x86-zip-2.1.5XX] - [Checksum][win-x86-zip-checksum-2.1.5XX] |
+| **macOS** | [![][osx-badge-master]][osx-version-master]
[Installer][osx-installer-master] - [Checksum][osx-installer-checksum-master]
[tar.gz][osx-targz-master] - [Checksum][osx-targz-checksum-master] | [![][osx-badge-3.0.1xx]][osx-version-3.0.1xx]
[Installer][osx-installer-3.0.1xx] - [Checksum][osx-installer-checksum-3.0.1xx]
[tar.gz][osx-targz-3.0.1xx] - [Checksum][osx-targz-checksum-3.0.1xx] | [![][osx-badge-3.0.100-preview9]][osx-version-3.0.100-preview9]
[Installer][osx-installer-3.0.100-preview9] - [Checksum][osx-installer-checksum-3.0.100-preview9]
[tar.gz][osx-targz-3.0.100-preview9] - [Checksum][osx-targz-checksum-3.0.100-preview9] | [![][osx-badge-2.2.3XX]][osx-version-2.2.3XX]
[Installer][osx-installer-2.2.3XX] - [Checksum][osx-installer-checksum-2.2.3XX]
[tar.gz][osx-targz-2.2.3XX] - [Checksum][osx-targz-checksum-2.2.3XX] |[![][osx-badge-2.2.2XX]][osx-version-2.2.2XX]
[Installer][osx-installer-2.2.2XX] - [Checksum][osx-installer-checksum-2.2.2XX]
[tar.gz][osx-targz-2.2.2XX] - [Checksum][osx-targz-checksum-2.2.2XX] |[![][osx-badge-2.2.1XX]][osx-version-2.2.1XX]
[Installer][osx-installer-2.2.1XX] - [Checksum][osx-installer-checksum-2.2.1XX]
[tar.gz][osx-targz-2.2.1XX] - [Checksum][osx-targz-checksum-2.2.1XX] |[![][osx-badge-2.1.7XX]][osx-version-2.1.7XX]
[Installer][osx-installer-2.1.7XX] - [Checksum][osx-installer-checksum-2.1.7XX]
[tar.gz][osx-targz-2.1.7XX] - [Checksum][osx-targz-checksum-2.1.7XX] | [![][osx-badge-2.1.6XX]][osx-version-2.1.6XX]
[Installer][osx-installer-2.1.6XX] - [Checksum][osx-installer-checksum-2.1.6XX]
[tar.gz][osx-targz-2.1.6XX] - [Checksum][osx-targz-checksum-2.1.6XX] | [![][osx-badge-2.1.5XX]][osx-version-2.1.5XX]
[Installer][osx-installer-2.1.5XX] - [Checksum][osx-installer-checksum-2.1.5XX]
[tar.gz][osx-targz-2.1.5XX] - [Checksum][osx-targz-checksum-2.1.5XX] |
+| **Linux x64** | [![][linux-badge-master]][linux-version-master]
[DEB Installer][linux-DEB-installer-master] - [Checksum][linux-DEB-installer-checksum-master]
[RPM Installer][linux-RPM-installer-master] - [Checksum][linux-RPM-installer-checksum-master]
_see installer note below_1
[tar.gz][linux-targz-master] - [Checksum][linux-targz-checksum-master] | [![][linux-badge-3.0.1xx]][linux-version-3.0.1xx]
[DEB Installer][linux-DEB-installer-3.0.1xx] - [Checksum][linux-DEB-installer-checksum-3.0.1xx]
[RPM Installer][linux-RPM-installer-3.0.1xx] - [Checksum][linux-RPM-installer-checksum-3.0.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.0.1xx] - [Checksum][linux-targz-checksum-3.0.1xx] | [![][linux-badge-3.0.100-preview9]][linux-version-3.0.100-preview9]
[DEB Installer][linux-DEB-installer-3.0.100-preview9] - [Checksum][linux-DEB-installer-checksum-3.0.100-preview9]
[RPM Installer][linux-RPM-installer-3.0.100-preview9] - [Checksum][linux-RPM-installer-checksum-3.0.100-preview9]
_see installer note below_1
[tar.gz][linux-targz-3.0.100-preview9] - [Checksum][linux-targz-checksum-3.0.100-preview9] | [![][linux-badge-2.2.3xx]][linux-version-2.2.3xx]
[DEB Installer][linux-DEB-installer-2.2.3XX] - [Checksum][linux-DEB-installer-checksum-2.2.3XX]
[RPM Installer][linux-RPM-installer-2.2.3XX] - [Checksum][linux-RPM-installer-checksum-2.2.3XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.3XX] - [Checksum][linux-targz-checksum-2.2.3XX] |[![][linux-badge-2.2.2xx]][linux-version-2.2.2xx]
[DEB Installer][linux-DEB-installer-2.2.2XX] - [Checksum][linux-DEB-installer-checksum-2.2.2XX]
[RPM Installer][linux-RPM-installer-2.2.2XX] - [Checksum][linux-RPM-installer-checksum-2.2.2XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.2XX] - [Checksum][linux-targz-checksum-2.2.2XX] |[![][linux-badge-2.2.1xx]][linux-version-2.2.1xx]
[DEB Installer][linux-DEB-installer-2.2.1XX] - [Checksum][linux-DEB-installer-checksum-2.2.1XX]
[RPM Installer][linux-RPM-installer-2.2.1XX] - [Checksum][linux-RPM-installer-checksum-2.2.1XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.1XX] - [Checksum][linux-targz-checksum-2.2.1XX] |[![][linux-badge-2.1.7XX]][linux-version-2.1.7XX]
[DEB Installer][linux-DEB-installer-2.1.7XX] - [Checksum][linux-DEB-installer-checksum-2.1.7XX]
[RPM Installer][linux-RPM-installer-2.1.7XX] - [Checksum][linux-RPM-installer-checksum-2.1.7XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.7XX] - [Checksum][linux-targz-checksum-2.1.7XX] | [![][linux-badge-2.1.6XX]][linux-version-2.1.6XX]
[DEB Installer][linux-DEB-installer-2.1.6XX] - [Checksum][linux-DEB-installer-checksum-2.1.6XX]
[RPM Installer][linux-RPM-installer-2.1.6XX] - [Checksum][linux-RPM-installer-checksum-2.1.6XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.6XX] - [Checksum][linux-targz-checksum-2.1.6XX] | [![][linux-badge-2.1.5XX]][linux-version-2.1.5XX]
[DEB Installer][linux-DEB-installer-2.1.5XX] - [Checksum][linux-DEB-installer-checksum-2.1.5XX]
[RPM Installer][linux-RPM-installer-2.1.5XX] - [Checksum][linux-RPM-installer-checksum-2.1.5XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.5XX] - [Checksum][linux-targz-checksum-2.1.5XX] |
+| **Linux arm** | [![][linux-arm-badge-master]][linux-arm-version-master]
[tar.gz][linux-arm-targz-master] - [Checksum][linux-arm-targz-checksum-master] | [![][linux-arm-badge-3.0.1xx]][linux-arm-version-3.0.1xx]
[tar.gz][linux-arm-targz-3.0.1xx] - [Checksum][linux-arm-targz-checksum-3.0.1xx] | [![][linux-arm-badge-3.0.100-preview9]][linux-arm-version-3.0.100-preview9]
[tar.gz][linux-arm-targz-3.0.100-preview9] - [Checksum][linux-arm-targz-checksum-3.0.100-preview9] | [![][linux-arm-badge-2.2.3XX]][linux-arm-version-2.2.3XX]
[tar.gz][linux-arm-targz-2.2.3XX] - [Checksum][linux-arm-targz-checksum-2.2.3XX] |[![][linux-arm-badge-2.2.2XX]][linux-arm-version-2.2.2XX]
[tar.gz][linux-arm-targz-2.2.2XX] - [Checksum][linux-arm-targz-checksum-2.2.2XX] |[![][linux-arm-badge-2.2.1XX]][linux-arm-version-2.2.1XX]
[tar.gz][linux-arm-targz-2.2.1XX] - [Checksum][linux-arm-targz-checksum-2.2.1XX] |[![][linux-arm-badge-2.1.7XX]][linux-arm-version-2.1.7XX]
[tar.gz][linux-arm-targz-2.1.7XX] - [Checksum][linux-arm-targz-checksum-2.1.7XX] | [![][linux-arm-badge-2.1.6XX]][linux-arm-version-2.1.6XX]
[tar.gz][linux-arm-targz-2.1.6XX] - [Checksum][linux-arm-targz-checksum-2.1.6XX] | [![][linux-arm-badge-2.1.5XX]][linux-arm-version-2.1.5XX]
[tar.gz][linux-arm-targz-2.1.5XX] - [Checksum][linux-arm-targz-checksum-2.1.5XX] |
+| **Linux arm64** | [![][linux-arm64-badge-master]][linux-arm64-version-master]
[tar.gz][linux-arm64-targz-master] - [Checksum][linux-arm64-targz-checksum-master] | [![][linux-arm64-badge-3.0.1xx]][linux-arm64-version-3.0.1xx]
[tar.gz][linux-arm64-targz-3.0.1xx] - [Checksum][linux-arm64-targz-checksum-3.0.1xx] | [![][linux-arm64-badge-3.0.100-preview9]][linux-arm64-version-3.0.100-preview9]
[tar.gz][linux-arm64-targz-3.0.100-preview9] - [Checksum][linux-arm64-targz-checksum-3.0.100-preview9] | [![][linux-arm64-badge-2.2.3XX]][linux-arm64-version-2.2.3XX]
[tar.gz][linux-arm64-targz-2.2.3XX] - [Checksum][linux-arm64-targz-checksum-2.2.3XX] |[![][linux-arm64-badge-2.2.2XX]][linux-arm64-version-2.2.2XX]
[tar.gz][linux-arm64-targz-2.2.2XX] - [Checksum][linux-arm64-targz-checksum-2.2.2XX] |[![][linux-arm64-badge-2.2.1XX]][linux-arm64-version-2.2.1XX]
[tar.gz][linux-arm64-targz-2.2.1XX] - [Checksum][linux-arm64-targz-checksum-2.2.1XX] |[![][linux-arm64-badge-2.1.7XX]][linux-arm64-version-2.1.7XX]
[tar.gz][linux-arm64-targz-2.1.7XX] - [Checksum][linux-arm64-targz-checksum-2.1.7XX] | [![][linux-arm64-badge-2.1.6XX]][linux-arm64-version-2.1.6XX]
[tar.gz][linux-arm64-targz-2.1.6XX] - [Checksum][linux-arm64-targz-checksum-2.1.6XX] | [![][linux-arm64-badge-2.1.5XX]][linux-arm64-version-2.1.5XX]
[tar.gz][linux-arm64-targz-2.1.5XX] - [Checksum][linux-arm64-targz-checksum-2.1.5XX] |
+| **RHEL 6** | [![][rhel-6-badge-master]][rhel-6-version-master]
[tar.gz][rhel-6-targz-master] - [Checksum][rhel-6-targz-checksum-master] | [![][rhel-6-badge-3.0.1xx]][rhel-6-version-3.0.1xx]
[tar.gz][rhel-6-targz-3.0.1xx] - [Checksum][rhel-6-targz-checksum-3.0.1xx] | [![][rhel-6-badge-3.0.100-preview9]][rhel-6-version-3.0.100-preview9]
[tar.gz][rhel-6-targz-3.0.100-preview9] - [Checksum][rhel-6-targz-checksum-3.0.100-preview9] | [![][rhel-6-badge-2.2.3XX]][rhel-6-version-2.2.3XX]
[tar.gz][rhel-6-targz-2.2.3XX] - [Checksum][rhel-6-targz-checksum-2.2.3XX] | [![][rhel-6-badge-2.2.2XX]][rhel-6-version-2.2.2XX]
[tar.gz][rhel-6-targz-2.2.2XX] - [Checksum][rhel-6-targz-checksum-2.2.2XX] | [![][rhel-6-badge-2.2.1XX]][rhel-6-version-2.2.1XX]
[tar.gz][rhel-6-targz-2.2.1XX] - [Checksum][rhel-6-targz-checksum-2.2.1XX] | [![][rhel-6-badge-2.1.7XX]][rhel-6-version-2.1.7XX]
[tar.gz][rhel-6-targz-2.1.7XX] - [Checksum][rhel-6-targz-checksum-2.1.7XX] | [![][rhel-6-badge-2.1.6XX]][rhel-6-version-2.1.6XX]
[tar.gz][rhel-6-targz-2.1.6XX] - [Checksum][rhel-6-targz-checksum-2.1.6XX] | [![][rhel-6-badge-2.1.5XX]][rhel-6-version-2.1.5XX]
[tar.gz][rhel-6-targz-2.1.5XX] - [Checksum][rhel-6-targz-checksum-2.1.5XX] |
+| **Linux-musl** | [![][linux-musl-badge-master]][linux-musl-version-master]
[tar.gz][linux-musl-targz-master] - [Checksum][linux-musl-targz-checksum-master] | [![][linux-musl-badge-3.0.1xx]][linux-musl-version-3.0.1xx]
[tar.gz][linux-musl-targz-3.0.1xx] - [Checksum][linux-musl-targz-checksum-3.0.1xx] | [![][linux-musl-badge-3.0.100-preview9]][linux-musl-version-3.0.100-preview9]
[tar.gz][linux-musl-targz-3.0.100-preview9] - [Checksum][linux-musl-targz-checksum-3.0.100-preview9] | [![][linux-musl-badge-2.2.3XX]][linux-musl-version-2.2.3XX]
[tar.gz][linux-musl-targz-2.2.3XX] - [Checksum][linux-musl-targz-checksum-2.2.3XX] |[![][linux-musl-badge-2.2.2XX]][linux-musl-version-2.2.2XX]
[tar.gz][linux-musl-targz-2.2.2XX] - [Checksum][linux-musl-targz-checksum-2.2.2XX] |[![][linux-musl-badge-2.2.1XX]][linux-musl-version-2.2.1XX]
[tar.gz][linux-musl-targz-2.2.1XX] - [Checksum][linux-musl-targz-checksum-2.2.1XX] |[![][linux-musl-badge-2.1.7XX]][linux-musl-version-2.1.7XX]
[tar.gz][linux-musl-targz-2.1.7XX] - [Checksum][linux-musl-targz-checksum-2.1.7XX] | [![][linux-musl-badge-2.1.6XX]][linux-musl-version-2.1.6XX]
[tar.gz][linux-musl-targz-2.1.6XX] - [Checksum][linux-musl-targz-checksum-2.1.6XX] | [![][linux-musl-badge-2.1.5XX]][linux-musl-version-2.1.5XX]
[tar.gz][linux-musl-targz-2.1.5XX] - [Checksum][linux-musl-targz-checksum-2.1.5XX] |
+| **Windows arm** | [![][win-arm-badge-master]][win-arm-version-master]
[zip][win-arm-zip-master] - [Checksum][win-arm-zip-checksum-master] | [![][win-arm-badge-3.0.1xx]][win-arm-version-3.0.1xx]
[zip][win-arm-zip-3.0.1xx] - [Checksum][win-arm-zip-checksum-3.0.1xx] | [![][win-arm-badge-3.0.100-preview9]][win-arm-version-3.0.100-preview9]
[zip][win-arm-zip-3.0.100-preview9] - [Checksum][win-arm-zip-checksum-3.0.100-preview9] | [![][win-arm-badge-2.2.3XX]][win-arm-version-2.2.3XX]
[zip][win-arm-zip-2.2.3XX] - [Checksum][win-arm-zip-checksum-2.2.3XX] | [![][win-arm-badge-2.2.2XX]][win-arm-version-2.2.2XX]
[zip][win-arm-zip-2.2.2XX] - [Checksum][win-arm-zip-checksum-2.2.2XX] | [![][win-arm-badge-2.2.1XX]][win-arm-version-2.2.1XX]
[zip][win-arm-zip-2.2.1XX] - [Checksum][win-arm-zip-checksum-2.2.1XX] | **N/A** | **N/A** | **N/A** |
+| **FreeBSD x64** | [![][freebsd-x64-badge-master]][freebsd-x64-version-master]
[tar.gz][freebsd-x64-zip-master] - [Checksum][freebsd-x64-zip-checksum-master] | [![][freebsd-x64-badge-3.0.1xx]][freebsd-x64-version-3.0.1xx]
[tar.gz][freebsd-x64-zip-3.0.1xx] - [Checksum][freebsd-x64-zip-checksum-3.0.1xx] | [![][freebsd-x64-badge-3.0.100-preview9]][freebsd-x64-version-3.0.100-preview9]
[tar.gz][freebsd-x64-zip-3.0.100-preview9] - [Checksum][freebsd-x64-zip-checksum-3.0.100-preview9] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** |
| **Constituent Repo Shas** | **N/A** | [Git SHAs][sdk-shas-2.2.1XX] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** |
Reference notes:
@@ -85,12 +85,12 @@ Reference notes:
[win-x64-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x64.zip
[win-x64-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x64.zip.sha
-[win-x64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_x64_Release_version_badge.svg
-[win-x64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[win-x64-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.exe
-[win-x64-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.exe.sha
-[win-x64-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.zip
-[win-x64-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.zip.sha
+[win-x64-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/win_x64_Release_version_badge.svg
+[win-x64-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[win-x64-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x64.exe
+[win-x64-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x64.exe.sha
+[win-x64-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x64.zip
+[win-x64-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x64.zip.sha
[win-x64-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_x64_Release_version_badge.svg
[win-x64-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -148,12 +148,12 @@ Reference notes:
[win-x86-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x86.zip
[win-x86-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x86.zip.sha
-[win-x86-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_x86_Release_version_badge.svg
-[win-x86-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[win-x86-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.exe
-[win-x86-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.exe.sha
-[win-x86-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.zip
-[win-x86-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.zip.sha
+[win-x86-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/win_x86_Release_version_badge.svg
+[win-x86-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[win-x86-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.exe
+[win-x86-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.exe.sha
+[win-x86-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.zip
+[win-x86-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.zip.sha
[win-x86-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_x86_Release_version_badge.svg
[win-x86-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -211,12 +211,12 @@ Reference notes:
[osx-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-osx-x64.tar.gz
[osx-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-osx-x64.tar.gz.sha
-[osx-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/osx_x64_Release_version_badge.svg
-[osx-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[osx-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.pkg
-[osx-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.pkg.sha
-[osx-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.tar.gz
-[osx-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.tar.gz.sha
+[osx-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/osx_x64_Release_version_badge.svg
+[osx-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[osx-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.pkg
+[osx-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.pkg.sha
+[osx-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.tar.gz
+[osx-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.tar.gz.sha
[osx-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/osx_x64_Release_version_badge.svg
[osx-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -278,14 +278,14 @@ Reference notes:
[linux-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-x64.tar.gz
[linux-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-x64.tar.gz.sha
-[linux-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_x64_Release_version_badge.svg
-[linux-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[linux-DEB-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.deb
-[linux-DEB-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.deb.sha
-[linux-RPM-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.rpm
-[linux-RPM-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.rpm.sha
-[linux-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-x64.tar.gz
-[linux-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-x64.tar.gz.sha
+[linux-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_x64_Release_version_badge.svg
+[linux-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[linux-DEB-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.deb
+[linux-DEB-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.deb.sha
+[linux-RPM-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.rpm
+[linux-RPM-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.rpm.sha
+[linux-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-x64.tar.gz
+[linux-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-x64.tar.gz.sha
[linux-badge-2.2.3xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_x64_Release_version_badge.svg
[linux-version-2.2.3xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -351,10 +351,10 @@ Reference notes:
[linux-arm-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm.tar.gz
[linux-arm-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm.tar.gz.sha
-[linux-arm-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_arm_Release_version_badge.svg
-[linux-arm-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[linux-arm-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm.tar.gz
-[linux-arm-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm.tar.gz.sha
+[linux-arm-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_arm_Release_version_badge.svg
+[linux-arm-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[linux-arm-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm.tar.gz
+[linux-arm-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm.tar.gz.sha
[linux-arm-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_arm_Release_version_badge.svg
[linux-arm-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -396,10 +396,10 @@ Reference notes:
[linux-arm64-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm64.tar.gz
[linux-arm64-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha
-[linux-arm64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_arm64_Release_version_badge.svg
-[linux-arm64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[linux-arm64-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm64.tar.gz
-[linux-arm64-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm64.tar.gz.sha
+[linux-arm64-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_arm64_Release_version_badge.svg
+[linux-arm64-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[linux-arm64-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm64.tar.gz
+[linux-arm64-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm64.tar.gz.sha
[linux-arm64-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_arm64_Release_version_badge.svg
[linux-arm64-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -441,10 +441,10 @@ Reference notes:
[rhel-6-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz
[rhel-6-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
-[rhel-6-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/rhel.6_x64_Release_version_badge.svg
-[rhel-6-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[rhel-6-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-rhel.6-x64.tar.gz
-[rhel-6-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
+[rhel-6-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/rhel.6_x64_Release_version_badge.svg
+[rhel-6-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[rhel-6-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-rhel.6-x64.tar.gz
+[rhel-6-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha
[rhel-6-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/rhel.6_x64_Release_version_badge.svg
[rhel-6-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -486,10 +486,10 @@ Reference notes:
[linux-musl-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz
[linux-musl-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
-[linux-musl-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_musl_x64_Release_version_badge.svg
-[linux-musl-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[linux-musl-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-musl-x64.tar.gz
-[linux-musl-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
+[linux-musl-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_musl_x64_Release_version_badge.svg
+[linux-musl-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[linux-musl-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-musl-x64.tar.gz
+[linux-musl-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha
[linux-musl-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_musl_x64_Release_version_badge.svg
[linux-musl-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -531,10 +531,10 @@ Reference notes:
[win-arm-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-arm.zip
[win-arm-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-arm.zip.sha
-[win-arm-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_arm_Release_version_badge.svg
-[win-arm-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[win-arm-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-arm.zip
-[win-arm-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-arm.zip.sha
+[win-arm-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/win_arm_Release_version_badge.svg
+[win-arm-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[win-arm-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-arm.zip
+[win-arm-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-arm.zip.sha
[win-arm-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_arm_Release_version_badge.svg
[win-arm-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version
@@ -561,10 +561,10 @@ Reference notes:
[freebsd-x64-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-freebsd-x64.tar.gz
[freebsd-x64-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-freebsd-x64.tar.gz.sha
-[freebsd-x64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/freebsd_x64_Release_version_badge.svg
-[freebsd-x64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version
-[freebsd-x64-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-freebsd-x64.tar.gz
-[freebsd-x64-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-freebsd-x64.tar.gz.sha
+[freebsd-x64-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/freebsd_x64_Release_version_badge.svg
+[freebsd-x64-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version
+[freebsd-x64-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-freebsd-x64.tar.gz
+[freebsd-x64-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-freebsd-x64.tar.gz.sha
[sdk-shas-2.2.1XX]: https://github.com/dotnet/versions/tree/master/build-info/dotnet/product/cli/release/2.2#built-repositories
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 059579970..c369f6877 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -55,19 +55,19 @@
d23afb6757bb73014e8c23b3f7c772578827049c
-
+
https://github.com/dotnet/winforms
- 8b19141d6b0b221167bd7d1731cbc6aa9898da75
+ 7f2c6adc229513b8a3690d0c59079073a783d33f
-
+
https://github.com/dotnet/wpf
- 105b673bddd8665580a94878db12ac97af8fa794
+ 4524e3a8b4d8ebc8643b6e2185a597700261e1fb
-
+
https://github.com/dotnet/arcade
- 8b670142ae1b65aa4d834257b0b64d4f69f30eb8
+ 7aa107d818fe87e627154c0331d6de5d47f39a45
diff --git a/eng/Versions.props b/eng/Versions.props
index dca68f442..e592c96a5 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -16,11 +16,11 @@
- 4.8.0-preview9.19415.10
+ 4.8.0-preview9.19420.3
- 3.0.0-preview9.19416.2
+ 3.0.0-preview9.19421.3
diff --git a/eng/common/init-tools-native.sh b/eng/common/init-tools-native.sh
index 5f2e77f44..4dafaaca1 100755
--- a/eng/common/init-tools-native.sh
+++ b/eng/common/init-tools-native.sh
@@ -70,8 +70,7 @@ function ReadGlobalJsonNativeTools {
# Only extract the contents of the object.
local native_tools_list=$(echo $native_tools_section | awk -F"[{}]" '{print $2}')
native_tools_list=${native_tools_list//[\" ]/}
- native_tools_list=${native_tools_list//,/$'\n'}
- native_tools_list="$(echo -e "${native_tools_list}" | tr -d '[[:space:]]')"
+ native_tools_list=$( echo "$native_tools_list" | sed 's/\s//g' | sed 's/,/\n/g' )
local old_IFS=$IFS
while read -r line; do
@@ -108,6 +107,7 @@ else
installer_command+=" --baseuri $base_uri"
installer_command+=" --installpath $install_bin"
installer_command+=" --version $tool_version"
+ echo $installer_command
if [[ $force = true ]]; then
installer_command+=" --force"
diff --git a/eng/common/native/install-cmake-test.sh b/eng/common/native/install-cmake-test.sh
new file mode 100644
index 000000000..53ddf4e68
--- /dev/null
+++ b/eng/common/native/install-cmake-test.sh
@@ -0,0 +1,117 @@
+#!/usr/bin/env bash
+
+source="${BASH_SOURCE[0]}"
+scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
+
+. $scriptroot/common-library.sh
+
+base_uri=
+install_path=
+version=
+clean=false
+force=false
+download_retries=5
+retry_wait_time_seconds=30
+
+while (($# > 0)); do
+ lowerI="$(echo $1 | awk '{print tolower($0)}')"
+ case $lowerI in
+ --baseuri)
+ base_uri=$2
+ shift 2
+ ;;
+ --installpath)
+ install_path=$2
+ shift 2
+ ;;
+ --version)
+ version=$2
+ shift 2
+ ;;
+ --clean)
+ clean=true
+ shift 1
+ ;;
+ --force)
+ force=true
+ shift 1
+ ;;
+ --downloadretries)
+ download_retries=$2
+ shift 2
+ ;;
+ --retrywaittimeseconds)
+ retry_wait_time_seconds=$2
+ shift 2
+ ;;
+ --help)
+ echo "Common settings:"
+ echo " --baseuri Base file directory or Url wrom which to acquire tool archives"
+ echo " --installpath Base directory to install native tool to"
+ echo " --clean Don't install the tool, just clean up the current install of the tool"
+ echo " --force Force install of tools even if they previously exist"
+ echo " --help Print help and exit"
+ echo ""
+ echo "Advanced settings:"
+ echo " --downloadretries Total number of retry attempts"
+ echo " --retrywaittimeseconds Wait time between retry attempts in seconds"
+ echo ""
+ exit 0
+ ;;
+ esac
+done
+
+tool_name="cmake-test"
+tool_os=$(GetCurrentOS)
+tool_folder=$(echo $tool_os | awk '{print tolower($0)}')
+tool_arch="x86_64"
+tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
+tool_install_directory="$install_path/$tool_name/$version"
+tool_file_path="$tool_install_directory/$tool_name_moniker/bin/$tool_name"
+shim_path="$install_path/$tool_name.sh"
+uri="${base_uri}/$tool_folder/$tool_name/$tool_name_moniker.tar.gz"
+
+# Clean up tool and installers
+if [[ $clean = true ]]; then
+ echo "Cleaning $tool_install_directory"
+ if [[ -d $tool_install_directory ]]; then
+ rm -rf $tool_install_directory
+ fi
+
+ echo "Cleaning $shim_path"
+ if [[ -f $shim_path ]]; then
+ rm -rf $shim_path
+ fi
+
+ tool_temp_path=$(GetTempPathFileName $uri)
+ echo "Cleaning $tool_temp_path"
+ if [[ -f $tool_temp_path ]]; then
+ rm -rf $tool_temp_path
+ fi
+
+ exit 0
+fi
+
+# Install tool
+if [[ -f $tool_file_path ]] && [[ $force = false ]]; then
+ echo "$tool_name ($version) already exists, skipping install"
+ exit 0
+fi
+
+DownloadAndExtract $uri $tool_install_directory $force $download_retries $retry_wait_time_seconds
+
+if [[ $? != 0 ]]; then
+ echo "Installation failed" >&2
+ exit 1
+fi
+
+# Generate Shim
+# Always rewrite shims so that we are referencing the expected version
+NewScriptShim $shim_path $tool_file_path true
+
+if [[ $? != 0 ]]; then
+ echo "Shim generation failed" >&2
+ exit 1
+fi
+
+exit 0
\ No newline at end of file
diff --git a/eng/common/native/install-cmake.sh b/eng/common/native/install-cmake.sh
index 293af6017..5f1a182fa 100755
--- a/eng/common/native/install-cmake.sh
+++ b/eng/common/native/install-cmake.sh
@@ -69,7 +69,7 @@ tool_name_moniker="$tool_name-$version-$tool_os-$tool_arch"
tool_install_directory="$install_path/$tool_name/$version"
tool_file_path="$tool_install_directory/$tool_name_moniker/bin/$tool_name"
shim_path="$install_path/$tool_name.sh"
-uri="${base_uri}/$tool_folder/cmake/$tool_name_moniker.tar.gz"
+uri="${base_uri}/$tool_folder/$tool_name/$tool_name_moniker.tar.gz"
# Clean up tool and installers
if [[ $clean = true ]]; then
diff --git a/eng/common/performance/performance-setup.ps1 b/eng/common/performance/performance-setup.ps1
index 7e5441f79..4a6706b63 100644
--- a/eng/common/performance/performance-setup.ps1
+++ b/eng/common/performance/performance-setup.ps1
@@ -2,7 +2,7 @@ Param(
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY,
[string] $CoreRootDirectory,
[string] $Architecture="x64",
- [string] $Framework="netcoreapp3.0",
+ [string] $Framework="netcoreapp5.0",
[string] $CompilationMode="Tiered",
[string] $Repository=$env:BUILD_REPOSITORY_NAME,
[string] $Branch=$env:BUILD_SOURCEBRANCH,
@@ -33,7 +33,7 @@ if ($Framework.StartsWith("netcoreapp")) {
}
if ($Internal) {
- $Queue = "Windows.10.Amd64.ClientRS5.Perf"
+ $Queue = "Windows.10.Amd64.19H1.Tiger.Perf"
$PerfLabArguments = "--upload-to-perflab-container"
$ExtraBenchmarkDotNetArguments = ""
$Creator = ""
diff --git a/eng/common/performance/performance-setup.sh b/eng/common/performance/performance-setup.sh
index 126da5f76..76126b1f8 100755
--- a/eng/common/performance/performance-setup.sh
+++ b/eng/common/performance/performance-setup.sh
@@ -3,7 +3,7 @@
source_directory=$BUILD_SOURCESDIRECTORY
core_root_directory=
architecture=x64
-framework=netcoreapp3.0
+framework=netcoreapp5.0
compilation_mode=tiered
repository=$BUILD_REPOSITORY_NAME
branch=$BUILD_SOURCEBRANCH
@@ -132,7 +132,7 @@ if [[ "$internal" == true ]]; then
if [[ "$architecture" = "arm64" ]]; then
queue=Ubuntu.1804.Arm64.Perf
else
- queue=Ubuntu.1804.Amd64.Perf
+ queue=Ubuntu.1804.Amd64.Tiger.Perf
fi
fi
@@ -156,21 +156,26 @@ if [[ "$use_core_run" = true ]]; then
mv $core_root_directory $new_core_root
fi
+ci=true
+
+_script_dir=$(pwd)/eng/common
+. "$_script_dir/pipeline-logging-functions.sh"
+
# Make sure all of our variables are available for future steps
-echo "##vso[task.setvariable variable=UseCoreRun]$use_core_run"
-echo "##vso[task.setvariable variable=Architecture]$architecture"
-echo "##vso[task.setvariable variable=PayloadDirectory]$payload_directory"
-echo "##vso[task.setvariable variable=PerformanceDirectory]$performance_directory"
-echo "##vso[task.setvariable variable=WorkItemDirectory]$workitem_directory"
-echo "##vso[task.setvariable variable=Queue]$queue"
-echo "##vso[task.setvariable variable=SetupArguments]$setup_arguments"
-echo "##vso[task.setvariable variable=Python]python3"
-echo "##vso[task.setvariable variable=PerfLabArguments]$perflab_arguments"
-echo "##vso[task.setvariable variable=ExtraBenchmarkDotNetArguments]$extra_benchmark_dotnet_arguments"
-echo "##vso[task.setvariable variable=BDNCategories]$run_categories"
-echo "##vso[task.setvariable variable=TargetCsproj]$csproj"
-echo "##vso[task.setvariable variable=RunFromPerfRepo]$run_from_perf_repo"
-echo "##vso[task.setvariable variable=Creator]$creator"
-echo "##vso[task.setvariable variable=HelixSourcePrefix]$helix_source_prefix"
-echo "##vso[task.setvariable variable=Kind]$kind"
-echo "##vso[task.setvariable variable=_BuildConfig]$architecture.$kind.$framework"
\ No newline at end of file
+Write-PipelineSetVariable -name "UseCoreRun" -value "$use_core_run" -is_multi_job_variable false
+Write-PipelineSetVariable -name "Architecture" -value "$architecture" -is_multi_job_variable false
+Write-PipelineSetVariable -name "PayloadDirectory" -value "$payload_directory" -is_multi_job_variable false
+Write-PipelineSetVariable -name "PerformanceDirectory" -value "$performance_directory" -is_multi_job_variable false
+Write-PipelineSetVariable -name "WorkItemDirectory" -value "$workitem_directory" -is_multi_job_variable false
+Write-PipelineSetVariable -name "Queue" -value "$queue" -is_multi_job_variable false
+Write-PipelineSetVariable -name "SetupArguments" -value "$setup_arguments" -is_multi_job_variable false
+Write-PipelineSetVariable -name "Python" -value "$python3" -is_multi_job_variable false
+Write-PipelineSetVariable -name "PerfLabArguments" -value "$perflab_arguments" -is_multi_job_variable false
+Write-PipelineSetVariable -name "ExtraBenchmarkDotNetArguments" -value "$extra_benchmark_dotnet_arguments" -is_multi_job_variable false
+Write-PipelineSetVariable -name "BDNCategories" -value "$run_categories" -is_multi_job_variable false
+Write-PipelineSetVariable -name "TargetCsproj" -value "$csproj" -is_multi_job_variable false
+Write-PipelineSetVariable -name "RunFromPerfRepo" -value "$run_from_perf_repo" -is_multi_job_variable false
+Write-PipelineSetVariable -name "Creator" -value "$creator" -is_multi_job_variable false
+Write-PipelineSetVariable -name "HelixSourcePrefix" -value "$helix_source_prefix" -is_multi_job_variable false
+Write-PipelineSetVariable -name "Kind" -value "$kind" -is_multi_job_variable false
+Write-PipelineSetVariable -name "_BuildConfig" -value "$architecture.$kind.$framework" -is_multi_job_variable false
\ No newline at end of file
diff --git a/eng/common/post-build/darc-gather-drop.ps1 b/eng/common/post-build/darc-gather-drop.ps1
index 93a0bd832..89854d3c1 100644
--- a/eng/common/post-build/darc-gather-drop.ps1
+++ b/eng/common/post-build/darc-gather-drop.ps1
@@ -19,7 +19,17 @@ try {
ExitWithExitCode $exitCode
}
+ # For now, only use a dry run.
+ # Ideally we would change darc to enable a quick request that
+ # would check whether the file exists that you can download it,
+ # and that it won't conflict with other files.
+ # https://github.com/dotnet/arcade/issues/3674
+ # Right now we can't remove continue-on-error because we ocassionally will have
+ # dependencies that have no associated builds (e.g. an old dependency).
+ # We need to add an option to baseline specific dependencies away, or add them manually
+ # to the BAR.
darc gather-drop --non-shipping `
+ --dry-run `
--continue-on-error `
--id $BarBuildId `
--output-dir $DropLocation `
diff --git a/eng/common/post-build/dotnetsymbol-init.ps1 b/eng/common/post-build/dotnetsymbol-init.ps1
deleted file mode 100644
index e7659b98c..000000000
--- a/eng/common/post-build/dotnetsymbol-init.ps1
+++ /dev/null
@@ -1,29 +0,0 @@
-param (
- $dotnetsymbolVersion = $null
-)
-
-$ErrorActionPreference = "Stop"
-Set-StrictMode -Version 2.0
-
-. $PSScriptRoot\..\tools.ps1
-
-$verbosity = "minimal"
-
-function Installdotnetsymbol ($dotnetsymbolVersion) {
- $dotnetsymbolPackageName = "dotnet-symbol"
-
- $dotnetRoot = InitializeDotNetCli -install:$true
- $dotnet = "$dotnetRoot\dotnet.exe"
- $toolList = & "$dotnet" tool list --global
-
- if (($toolList -like "*$dotnetsymbolPackageName*") -and ($toolList -like "*$dotnetsymbolVersion*")) {
- Write-Host "dotnet-symbol version $dotnetsymbolVersion is already installed."
- }
- else {
- Write-Host "Installing dotnet-symbol version $dotnetsymbolVersion..."
- Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
- & "$dotnet" tool install $dotnetsymbolPackageName --version $dotnetsymbolVersion --verbosity $verbosity --global
- }
-}
-
-Installdotnetsymbol $dotnetsymbolVersion
diff --git a/eng/common/post-build/sourcelink-cli-init.ps1 b/eng/common/post-build/sourcelink-cli-init.ps1
deleted file mode 100644
index 9eaa25b3b..000000000
--- a/eng/common/post-build/sourcelink-cli-init.ps1
+++ /dev/null
@@ -1,29 +0,0 @@
-param (
- $sourcelinkCliVersion = $null
-)
-
-$ErrorActionPreference = "Stop"
-Set-StrictMode -Version 2.0
-
-. $PSScriptRoot\..\tools.ps1
-
-$verbosity = "minimal"
-
-function InstallSourcelinkCli ($sourcelinkCliVersion) {
- $sourcelinkCliPackageName = "sourcelink"
-
- $dotnetRoot = InitializeDotNetCli -install:$true
- $dotnet = "$dotnetRoot\dotnet.exe"
- $toolList = & "$dotnet" tool list --global
-
- if (($toolList -like "*$sourcelinkCliPackageName*") -and ($toolList -like "*$sourcelinkCliVersion*")) {
- Write-Host "SourceLink CLI version $sourcelinkCliVersion is already installed."
- }
- else {
- Write-Host "Installing SourceLink CLI version $sourcelinkCliVersion..."
- Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
- & "$dotnet" tool install $sourcelinkCliPackageName --version $sourcelinkCliVersion --verbosity $verbosity --global
- }
-}
-
-InstallSourcelinkCli $sourcelinkCliVersion
diff --git a/eng/common/post-build/sourcelink-validation.ps1 b/eng/common/post-build/sourcelink-validation.ps1
index 41e01ae6e..428e8c960 100644
--- a/eng/common/post-build/sourcelink-validation.ps1
+++ b/eng/common/post-build/sourcelink-validation.ps1
@@ -1,8 +1,8 @@
param(
[Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where Symbols.NuGet packages to be checked are stored
[Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
- [Parameter(Mandatory=$true)][string] $GHRepoName, # GitHub name of the repo including the Org. E.g., dotnet/arcade
- [Parameter(Mandatory=$true)][string] $GHCommit, # GitHub commit SHA used to build the packages
+ [Parameter(Mandatory=$false)][string] $GHRepoName, # GitHub name of the repo including the Org. E.g., dotnet/arcade
+ [Parameter(Mandatory=$false)][string] $GHCommit, # GitHub commit SHA used to build the packages
[Parameter(Mandatory=$true)][string] $SourcelinkCliVersion # Version of SourceLink CLI to use
)
@@ -13,6 +13,12 @@ param(
# all files present in the repo at a specific commit point.
$global:RepoFiles = @{}
+# Maximum number of jobs to run in parallel
+$MaxParallelJobs = 6
+
+# Wait time between check for system load
+$SecondsBetweenLoadChecks = 10
+
$ValidatePackage = {
param(
[string] $PackagePath # Full path to a Symbols.NuGet package
@@ -22,8 +28,8 @@ $ValidatePackage = {
# Ensure input file exist
if (!(Test-Path $PackagePath)) {
- Write-PipelineTaskError "Input file does not exist: $PackagePath"
- ExitWithExitCode 1
+ Write-Host "Input file does not exist: $PackagePath"
+ return 1
}
# Extensions for which we'll look for SourceLink information
@@ -38,7 +44,7 @@ $ValidatePackage = {
Add-Type -AssemblyName System.IO.Compression.FileSystem
- [System.IO.Directory]::CreateDirectory($ExtractPath);
+ [System.IO.Directory]::CreateDirectory($ExtractPath) | Out-Null
try {
$zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath)
@@ -138,16 +144,18 @@ $ValidatePackage = {
if ($FailedFiles -eq 0) {
Write-Host "Passed."
+ return 0
}
else {
- Write-PipelineTaskError "$PackagePath has broken SourceLink links."
+ Write-Host "$PackagePath has broken SourceLink links."
+ return 1
}
}
function ValidateSourceLinkLinks {
- if (!($GHRepoName -Match "^[^\s\/]+/[^\s\/]+$")) {
+ if ($GHRepoName -ne "" -and !($GHRepoName -Match "^[^\s\/]+/[^\s\/]+$")) {
if (!($GHRepoName -Match "^[^\s-]+-[^\s]+$")) {
- Write-PipelineTaskError "GHRepoName should be in the format / or -"
+ Write-PipelineTaskError "GHRepoName should be in the format / or -. '$GHRepoName'"
ExitWithExitCode 1
}
else {
@@ -155,30 +163,33 @@ function ValidateSourceLinkLinks {
}
}
- if (!($GHCommit -Match "^[0-9a-fA-F]{40}$")) {
- Write-PipelineTaskError "GHCommit should be a 40 chars hexadecimal string"
+ if ($GHCommit -ne "" -and !($GHCommit -Match "^[0-9a-fA-F]{40}$")) {
+ Write-PipelineTaskError "GHCommit should be a 40 chars hexadecimal string. '$GHCommit'"
ExitWithExitCode 1
}
- $RepoTreeURL = -Join("http://api.github.com/repos/", $GHRepoName, "/git/trees/", $GHCommit, "?recursive=1")
- $CodeExtensions = @(".cs", ".vb", ".fs", ".fsi", ".fsx", ".fsscript")
+ if ($GHRepoName -ne "" -and $GHCommit -ne "") {
+ $RepoTreeURL = -Join("http://api.github.com/repos/", $GHRepoName, "/git/trees/", $GHCommit, "?recursive=1")
+ $CodeExtensions = @(".cs", ".vb", ".fs", ".fsi", ".fsx", ".fsscript")
- try {
- # Retrieve the list of files in the repo at that particular commit point and store them in the RepoFiles hash
- $Data = Invoke-WebRequest $RepoTreeURL -UseBasicParsing | ConvertFrom-Json | Select-Object -ExpandProperty tree
+ try {
+ # Retrieve the list of files in the repo at that particular commit point and store them in the RepoFiles hash
+ $Data = Invoke-WebRequest $RepoTreeURL -UseBasicParsing | ConvertFrom-Json | Select-Object -ExpandProperty tree
- foreach ($file in $Data) {
- $Extension = [System.IO.Path]::GetExtension($file.path)
+ foreach ($file in $Data) {
+ $Extension = [System.IO.Path]::GetExtension($file.path)
- if ($CodeExtensions.Contains($Extension)) {
- $RepoFiles[$file.path] = 1
+ if ($CodeExtensions.Contains($Extension)) {
+ $RepoFiles[$file.path] = 1
+ }
}
}
+ catch {
+ Write-Host "Problems downloading the list of files from the repo. Url used: $RepoTreeURL . Execution will proceed without caching."
+ }
}
- catch {
- Write-PipelineTaskError "Problems downloading the list of files from the repo. Url used: $RepoTreeURL"
- Write-Host $_
- ExitWithExitCode 1
+ elseif ($GHRepoName -ne "" -or $GHCommit -ne "") {
+ Write-Host "For using the http caching mechanism both GHRepoName and GHCommit should be informed."
}
if (Test-Path $ExtractPath) {
@@ -186,14 +197,33 @@ function ValidateSourceLinkLinks {
}
# Process each NuGet package in parallel
- $Jobs = @()
Get-ChildItem "$InputPath\*.symbols.nupkg" |
ForEach-Object {
- $Jobs += Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName
+ Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName | Out-Null
+ $NumJobs = @(Get-Job -State 'Running').Count
+
+ while ($NumJobs -ge $MaxParallelJobs) {
+ Write-Host "There are $NumJobs validation jobs running right now. Waiting $SecondsBetweenLoadChecks seconds to check again."
+ sleep $SecondsBetweenLoadChecks
+ $NumJobs = @(Get-Job -State 'Running').Count
+ }
+
+ foreach ($Job in @(Get-Job -State 'Completed')) {
+ Receive-Job -Id $Job.Id
+ Remove-Job -Id $Job.Id
+ }
}
+ $ValidationFailures = 0
foreach ($Job in $Jobs) {
- Wait-Job -Id $Job.Id | Receive-Job
+ $jobResult = Wait-Job -Id $Job.Id | Receive-Job
+ if ($jobResult -ne "0") {
+ $ValidationFailures++
+ }
+ }
+ if ($ValidationFailures -gt 0) {
+ Write-PipelineTaskError " $ValidationFailures package(s) failed validation."
+ ExitWithExitCode 1
}
}
diff --git a/eng/common/sdl/execute-all-sdl-tools.ps1 b/eng/common/sdl/execute-all-sdl-tools.ps1
index aab7589f2..6d9bdcf72 100644
--- a/eng/common/sdl/execute-all-sdl-tools.ps1
+++ b/eng/common/sdl/execute-all-sdl-tools.ps1
@@ -86,8 +86,8 @@ if ($TsaPublish) {
if (-not $TsaRepositoryName) {
$TsaRepositoryName = "$($Repository)-$($BranchName)"
}
- Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $SourceDirectory --logger-level $GuardianLoggerLevel"
- & $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel
+ Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel"
+ & $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --onboard $True --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel
if ($LASTEXITCODE -ne 0) {
Write-Host "Guardian tsa-publish failed with exit code $LASTEXITCODE."
exit $LASTEXITCODE
diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config
index fb9b71286..3f97ac2f1 100644
--- a/eng/common/sdl/packages.config
+++ b/eng/common/sdl/packages.config
@@ -1,4 +1,4 @@
-
+
diff --git a/eng/common/sdl/run-sdl.ps1 b/eng/common/sdl/run-sdl.ps1
index d7b856445..b90c4399b 100644
--- a/eng/common/sdl/run-sdl.ps1
+++ b/eng/common/sdl/run-sdl.ps1
@@ -25,19 +25,19 @@ if ($ValidPath -eq $False)
exit 1
}
+$configParam = @("--config")
+
foreach ($tool in $ToolsList) {
$gdnConfigFile = Join-Path $gdnConfigPath "$tool-configure.gdnconfig"
- $config = $False
Write-Host $tool
# We have to manually configure tools that run on source to look at the source directory only
if ($tool -eq "credscan") {
- Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory : $TargetDirectory `" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})"
- & $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory : $TargetDirectory " $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})
+ Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory : $TargetDirectory `" `" OutputType : pre `" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})"
+ & $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory : $TargetDirectory " "OutputType : pre" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})
if ($LASTEXITCODE -ne 0) {
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
exit $LASTEXITCODE
}
- $config = $True
}
if ($tool -eq "policheck") {
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" Target : $TargetDirectory `" $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})"
@@ -46,22 +46,14 @@ foreach ($tool in $ToolsList) {
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
exit $LASTEXITCODE
}
- $config = $True
}
- Write-Host "$GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel --config $gdnConfigFile $config"
- if ($config) {
- & $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel --config $gdnConfigFile
- if ($LASTEXITCODE -ne 0) {
- Write-Host "Guardian run for $tool using $gdnConfigFile failed with exit code $LASTEXITCODE."
- exit $LASTEXITCODE
- }
- } else {
- & $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel
- if ($LASTEXITCODE -ne 0) {
- Write-Host "Guardian run for $tool failed with exit code $LASTEXITCODE."
- exit $LASTEXITCODE
- }
- }
+ $configParam+=$gdnConfigFile
}
+Write-Host "$GuardianCliLocation run --working-directory $WorkingDirectory --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel $configParam"
+& $GuardianCliLocation run --working-directory $WorkingDirectory --tool $tool --baseline mainbaseline --update-baseline $UpdateBaseline --logger-level $GuardianLoggerLevel $configParam
+if ($LASTEXITCODE -ne 0) {
+ Write-Host "Guardian run for $ToolsList using $configParam failed with exit code $LASTEXITCODE."
+ exit $LASTEXITCODE
+}
\ No newline at end of file
diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml
index 5837f3d56..91621cf88 100644
--- a/eng/common/templates/job/execute-sdl.yml
+++ b/eng/common/templates/job/execute-sdl.yml
@@ -10,6 +10,8 @@ jobs:
displayName: Run SDL tool
variables:
- group: DotNet-VSTS-Bot
+ pool:
+ name: Hosted VS2017
steps:
- checkout: self
clean: true
@@ -46,7 +48,7 @@ jobs:
continueOnError: ${{ parameters.continueOnError }}
- ${{ if eq(parameters.overrideParameters, '') }}:
- powershell: eng/common/sdl/execute-all-sdl-tools.ps1
- -GuardianPackageName Microsoft.Guardian.Cli.0.6.0
+ -GuardianPackageName Microsoft.Guardian.Cli.0.7.1
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
${{ parameters.additionalParameters }}
diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml
index 1814e0ab6..8db456bb7 100644
--- a/eng/common/templates/job/job.yml
+++ b/eng/common/templates/job/job.yml
@@ -37,6 +37,9 @@ parameters:
# Optional: Enable publishing to the build asset registry
enablePublishBuildAssets: false
+ # Optional: Prevent gather/push manifest from executing when using publishing pipelines
+ enablePublishUsingPipelines: false
+
# Optional: Include PublishTestResults task
enablePublishTestResults: false
@@ -187,7 +190,7 @@ jobs:
continueOnError: true
condition: always()
- - ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(variables['_PublishUsingPipelines'], 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
+ - ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: CopyFiles@2
displayName: Gather Asset Manifests
inputs:
@@ -195,6 +198,7 @@ jobs:
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
continueOnError: ${{ parameters.continueOnError }}
condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true'))
+
- task: PublishBuildArtifacts@1
displayName: Push Asset Manifests
inputs:
diff --git a/eng/common/templates/post-build/channels/internal-servicing.yml b/eng/common/templates/post-build/channels/internal-servicing.yml
index 12fd2b465..4ca36358d 100644
--- a/eng/common/templates/post-build/channels/internal-servicing.yml
+++ b/eng/common/templates/post-build/channels/internal-servicing.yml
@@ -1,5 +1,7 @@
parameters:
enableSymbolValidation: true
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
stages:
- stage: IS_Publish
@@ -13,17 +15,23 @@ stages:
- job:
displayName: Symbol Publishing
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
variables:
- group: DotNet-Symbol-Server-Pats
pool:
vmImage: 'windows-2019'
steps:
- task: DownloadBuildArtifacts@0
- displayName: Download Artifacts
+ displayName: Download Blob Artifacts
inputs:
- downloadType: specific files
- matchingPattern: "*Artifacts*"
+ artifactName: 'BlobArtifacts'
+ continueOnError: true
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download PDB Artifacts
+ inputs:
+ artifactName: 'PDBArtifacts'
+ continueOnError: true
- task: PowerShell@2
displayName: Publish
@@ -34,7 +42,9 @@ stages:
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
/p:Configuration=Release
+ ${{ parameters.symbolPublishingAdditionalParameters }}
- job: publish_assets
displayName: Publish Assets
@@ -46,7 +56,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -92,6 +102,7 @@ stages:
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
/p:Configuration=Release
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
- task: NuGetCommand@2
displayName: Publish Packages to AzDO Feed
@@ -126,7 +137,7 @@ stages:
- job:
displayName: Symbol Availability
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.InternalServicing_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.InternalServicing_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
diff --git a/eng/common/templates/post-build/channels/netcore-dev-5.yml b/eng/common/templates/post-build/channels/netcore-dev-5.yml
new file mode 100644
index 000000000..812def315
--- /dev/null
+++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml
@@ -0,0 +1,165 @@
+parameters:
+ enableSymbolValidation: true
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
+ publishInstallersAndChecksums: false
+
+stages:
+- stage: NetCore_Dev5_Publish
+ dependsOn: validate
+ variables:
+ - template: ../common-variables.yml
+ displayName: .NET Core 5 Dev Channel
+ jobs:
+ - template: ../setup-maestro-vars.yml
+
+ - job:
+ displayName: Symbol Publishing
+ dependsOn: setupMaestroVars
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
+ variables:
+ - group: DotNet-Symbol-Server-Pats
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Blob Artifacts
+ inputs:
+ artifactName: 'BlobArtifacts'
+ continueOnError: true
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download PDB Artifacts
+ inputs:
+ artifactName: 'PDBArtifacts'
+ continueOnError: true
+
+ - task: PowerShell@2
+ displayName: Publish
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
+ /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
+ /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
+ /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
+ /p:Configuration=Release
+ ${{ parameters.symbolPublishingAdditionalParameters }}
+
+ - job:
+ displayName: Publish Assets
+ dependsOn: setupMaestroVars
+ variables:
+ - group: DotNet-Blob-Feed
+ - group: AzureDevOps-Artifact-Feeds-Pats
+ - name: BARBuildId
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
+ - name: IsStableBuild
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Package Artifacts
+ inputs:
+ buildType: current
+ artifactName: PackageArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Blob Artifacts
+ inputs:
+ buildType: current
+ artifactName: BlobArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Asset Manifests
+ inputs:
+ buildType: current
+ artifactName: AssetManifests
+
+ - task: PowerShell@2
+ displayName: Add Assets Location
+ env:
+ AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
+ /p:ChannelId=$(NetCore_5_Dev_Channel_Id)
+ /p:ArtifactsCategory=$(_DotNetArtifactsCategory)
+ /p:IsStableBuild=$(IsStableBuild)
+ /p:IsInternalBuild=$(IsInternalBuild)
+ /p:RepositoryName=$(Build.Repository.Name)
+ /p:CommitSha=$(Build.SourceVersion)
+ /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
+ /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
+ /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
+ /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
+ /p:BARBuildId=$(BARBuildId)
+ /p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
+ /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
+ /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
+ /p:Configuration=Release
+ /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
+ /p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
+ /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
+ /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
+ /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
+
+ - task: NuGetCommand@2
+ displayName: Publish Packages to AzDO Feed
+ condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
+ inputs:
+ command: push
+ vstsFeed: $(AzDoFeedName)
+ packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
+ publishVstsFeed: $(AzDoFeedName)
+
+ - task: PowerShell@2
+ displayName: Publish Blobs to AzDO Feed
+ inputs:
+ filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
+ arguments: -FeedName $(AzDoFeedName)
+ -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
+ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
+ enabled: false
+
+
+- stage: NetCore_Dev5_PublishValidation
+ displayName: Publish Validation
+ variables:
+ - template: ../common-variables.yml
+ jobs:
+ - template: ../setup-maestro-vars.yml
+
+ - ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
+ - job:
+ displayName: Symbol Availability
+ dependsOn: setupMaestroVars
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_5_Dev_Channel_Id))
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Package Artifacts
+ inputs:
+ buildType: current
+ artifactName: PackageArtifacts
+
+ - task: PowerShell@2
+ displayName: Check Symbol Availability
+ inputs:
+ filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
+ arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
+
+ - template: ../darc-gather-drop.yml
+ parameters:
+ ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }}
+
+ - template: ../promote-build.yml
+ parameters:
+ ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }}
diff --git a/eng/common/templates/post-build/channels/netcore-tools-latest.yml b/eng/common/templates/post-build/channels/netcore-tools-latest.yml
new file mode 100644
index 000000000..c2d207673
--- /dev/null
+++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml
@@ -0,0 +1,165 @@
+parameters:
+ enableSymbolValidation: true
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
+ publishInstallersAndChecksums: false
+
+stages:
+- stage: NetCore_Tools_Latest_Publish
+ dependsOn: validate
+ variables:
+ - template: ../common-variables.yml
+ displayName: .NET Tools - Latest
+ jobs:
+ - template: ../setup-maestro-vars.yml
+
+ - job:
+ displayName: Symbol Publishing
+ dependsOn: setupMaestroVars
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
+ variables:
+ - group: DotNet-Symbol-Server-Pats
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Blob Artifacts
+ inputs:
+ artifactName: 'BlobArtifacts'
+ continueOnError: true
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download PDB Artifacts
+ inputs:
+ artifactName: 'PDBArtifacts'
+ continueOnError: true
+
+ - task: PowerShell@2
+ displayName: Publish
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet
+ /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
+ /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
+ /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
+ /p:Configuration=Release
+ ${{ parameters.symbolPublishingAdditionalParameters }}
+
+ - job:
+ displayName: Publish Assets
+ dependsOn: setupMaestroVars
+ variables:
+ - group: DotNet-Blob-Feed
+ - group: AzureDevOps-Artifact-Feeds-Pats
+ - name: BARBuildId
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
+ - name: IsStableBuild
+ value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Package Artifacts
+ inputs:
+ buildType: current
+ artifactName: PackageArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Blob Artifacts
+ inputs:
+ buildType: current
+ artifactName: BlobArtifacts
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Asset Manifests
+ inputs:
+ buildType: current
+ artifactName: AssetManifests
+
+ - task: PowerShell@2
+ displayName: Add Assets Location
+ env:
+ AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw)
+ inputs:
+ filePath: eng\common\sdk-task.ps1
+ arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet
+ /p:ChannelId=$(NetCore_Tools_Latest_Channel_Id)
+ /p:ArtifactsCategory=$(_DotNetArtifactsCategory)
+ /p:IsStableBuild=$(IsStableBuild)
+ /p:IsInternalBuild=$(IsInternalBuild)
+ /p:RepositoryName=$(Build.Repository.Name)
+ /p:CommitSha=$(Build.SourceVersion)
+ /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe
+ /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
+ /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)'
+ /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
+ /p:BARBuildId=$(BARBuildId)
+ /p:MaestroApiEndpoint='$(MaestroApiEndPoint)'
+ /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)'
+ /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
+ /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
+ /p:Configuration=Release
+ /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
+ /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
+ /p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
+ /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
+ /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
+
+ - task: NuGetCommand@2
+ displayName: Publish Packages to AzDO Feed
+ condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com')
+ inputs:
+ command: push
+ vstsFeed: $(AzDoFeedName)
+ packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg
+ publishVstsFeed: $(AzDoFeedName)
+
+ - task: PowerShell@2
+ displayName: Publish Blobs to AzDO Feed
+ inputs:
+ filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1
+ arguments: -FeedName $(AzDoFeedName)
+ -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/
+ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw)
+ enabled: false
+
+
+- stage: NetCore_Tools_Latest_PublishValidation
+ displayName: Publish Validation
+ variables:
+ - template: ../common-variables.yml
+ jobs:
+ - template: ../setup-maestro-vars.yml
+
+ - ${{ if eq(parameters.enableSymbolValidation, 'true') }}:
+ - job:
+ displayName: Symbol Availability
+ dependsOn: setupMaestroVars
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Latest_Channel_Id))
+ pool:
+ vmImage: 'windows-2019'
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download Package Artifacts
+ inputs:
+ buildType: current
+ artifactName: PackageArtifacts
+
+ - task: PowerShell@2
+ displayName: Check Symbol Availability
+ inputs:
+ filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1
+ arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion)
+
+ - template: ../darc-gather-drop.yml
+ parameters:
+ ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }}
+
+ - template: ../promote-build.yml
+ parameters:
+ ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }}
diff --git a/eng/common/templates/post-build/channels/public-dev-release.yml b/eng/common/templates/post-build/channels/public-dev-release.yml
index b0f085b14..afa954214 100644
--- a/eng/common/templates/post-build/channels/public-dev-release.yml
+++ b/eng/common/templates/post-build/channels/public-dev-release.yml
@@ -1,5 +1,8 @@
parameters:
enableSymbolValidation: true
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
+ publishInstallersAndChecksums: false
stages:
- stage: Publish
@@ -13,17 +16,23 @@ stages:
- job:
displayName: Symbol Publishing
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
variables:
- group: DotNet-Symbol-Server-Pats
pool:
vmImage: 'windows-2019'
steps:
- task: DownloadBuildArtifacts@0
- displayName: Download Artifacts
+ displayName: Download Blob Artifacts
inputs:
- downloadType: specific files
- matchingPattern: "*Artifacts*"
+ artifactName: 'BlobArtifacts'
+ continueOnError: true
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download PDB Artifacts
+ inputs:
+ artifactName: 'PDBArtifacts'
+ continueOnError: true
- task: PowerShell@2
displayName: Publish
@@ -34,7 +43,9 @@ stages:
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
/p:Configuration=Release
+ ${{ parameters.symbolPublishingAdditionalParameters }}
- job:
displayName: Publish Assets
@@ -46,7 +57,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -92,6 +103,12 @@ stages:
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/'
/p:Configuration=Release
+ /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
+ /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
+ /p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
+ /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
+ /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
- task: NuGetCommand@2
displayName: Publish Packages to AzDO Feed
@@ -123,7 +140,7 @@ stages:
- job:
displayName: Symbol Availability
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicDevRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
diff --git a/eng/common/templates/post-build/channels/public-release.yml b/eng/common/templates/post-build/channels/public-release.yml
index 4c63fb43f..7ec1f89c0 100644
--- a/eng/common/templates/post-build/channels/public-release.yml
+++ b/eng/common/templates/post-build/channels/public-release.yml
@@ -1,5 +1,7 @@
parameters:
enableSymbolValidation: true
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
stages:
- stage: PubRel_Publish
@@ -13,17 +15,23 @@ stages:
- job:
displayName: Symbol Publishing
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id))
variables:
- group: DotNet-Symbol-Server-Pats
pool:
vmImage: 'windows-2019'
steps:
- task: DownloadBuildArtifacts@0
- displayName: Download Artifacts
+ displayName: Download Blob Artifacts
inputs:
- downloadType: specific files
- matchingPattern: "*Artifacts*"
+ artifactName: 'BlobArtifacts'
+ continueOnError: true
+
+ - task: DownloadBuildArtifacts@0
+ displayName: Download PDB Artifacts
+ inputs:
+ artifactName: 'PDBArtifacts'
+ continueOnError: true
- task: PowerShell@2
displayName: Publish
@@ -34,7 +42,9 @@ stages:
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
/p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/'
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/'
+ /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
/p:Configuration=Release
+ ${{ parameters.symbolPublishingAdditionalParameters }}
- job: publish_assets
displayName: Publish Assets
@@ -46,7 +56,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -80,6 +90,7 @@ stages:
/p:IsInternalBuild=$(IsInternalBuild)
/p:RepositoryName=$(Build.Repository.Name)
/p:CommitSha=$(Build.SourceVersion)
+ /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)'
/p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName)
/p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1)
/p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url)
@@ -92,6 +103,7 @@ stages:
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
/p:Configuration=Release
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
- task: NuGetCommand@2
displayName: Publish Packages to AzDO Feed
@@ -126,7 +138,7 @@ stages:
- job:
displayName: Symbol Availability
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
diff --git a/eng/common/templates/post-build/channels/public-validation-release.yml b/eng/common/templates/post-build/channels/public-validation-release.yml
index 1089ac5fa..12124d621 100644
--- a/eng/common/templates/post-build/channels/public-validation-release.yml
+++ b/eng/common/templates/post-build/channels/public-validation-release.yml
@@ -1,3 +1,7 @@
+parameters:
+ artifactsPublishingAdditionalParameters: ''
+ publishInstallersAndChecksums: false
+
stages:
- stage: PVR_Publish
dependsOn: validate
@@ -17,7 +21,7 @@ stages:
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
- name: IsStableBuild
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ]
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], variables.PublicValidationRelease_30_Channel_Id)
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicValidationRelease_30_Channel_Id))
pool:
vmImage: 'windows-2019'
steps:
@@ -62,7 +66,13 @@ stages:
/p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/'
/p:BlobBasePath='$(Build.ArtifactStagingDirectory)\BlobArtifacts'
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)\PackageArtifacts'
- /p:Configuration=Release
+ /p:Configuration=Release
+ /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl)
+ /p:InstallersAzureAccountKey=$(dotnetcli-storage-key)
+ /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }}
+ /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl)
+ /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key)
+ ${{ parameters.artifactsPublishingAdditionalParameters }}
- task: NuGetCommand@2
displayName: Publish Packages to AzDO Feed
diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml
index bd0bc5e4d..b00d85d8c 100644
--- a/eng/common/templates/post-build/common-variables.yml
+++ b/eng/common/templates/post-build/common-variables.yml
@@ -1,14 +1,23 @@
variables:
- group: Publish-Build-Assets
+ - group: DotNet-DotNetCli-Storage
# .NET Core 3 Dev
- name: PublicDevRelease_30_Channel_Id
value: 3
+ # .NET Core 5 Dev
+ - name: NetCore_5_Dev_Channel_Id
+ value: 131
+
# .NET Tools - Validation
- name: PublicValidationRelease_30_Channel_Id
value: 9
+ # .NET Tools - Latest
+ - name: NetCore_Tools_Latest_Channel_Id
+ value: 2
+
# .NET Core 3.0 Internal Servicing
- name: InternalServicing_30_Channel_Id
value: 184
@@ -37,3 +46,9 @@ variables:
value: 3.0.0
- name: SymbolToolVersion
value: 1.0.1
+
+ # Default locations for Installers and checksums
+ - name: ChecksumsBlobFeedUrl
+ value: https://dotnetcli.blob.core.windows.net/dotnet/index.json
+ - name: InstallersBlobFeedUrl
+ value: https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json
diff --git a/eng/common/templates/post-build/darc-gather-drop.yml b/eng/common/templates/post-build/darc-gather-drop.yml
index f4e3bfcf5..3268ccaa5 100644
--- a/eng/common/templates/post-build/darc-gather-drop.yml
+++ b/eng/common/templates/post-build/darc-gather-drop.yml
@@ -5,7 +5,7 @@ jobs:
- job: gatherDrop
displayName: Gather Drop
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], ${{ parameters.ChannelId }})
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', ${{ parameters.ChannelId }}))
variables:
- name: BARBuildId
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index 0872db4ed..3f239fae2 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -3,10 +3,17 @@ parameters:
enableSigningValidation: true
enableSymbolValidation: true
enableNugetValidation: true
+ publishInstallersAndChecksums: false
SDLValidationParameters:
enable: false
params: ''
+ # These parameters let the user customize the call to sdk-task.ps1 for publishing
+ # symbols & general artifacts as well as for signing validation
+ symbolPublishingAdditionalParameters: ''
+ artifactsPublishingAdditionalParameters: ''
+ signingValidationAdditionalParameters: ''
+
# Which stages should finish execution before post-build stages start
dependsOn: [build]
@@ -52,7 +59,9 @@ stages:
filePath: eng\common\sdk-task.ps1
arguments: -task SigningValidation -restore -msbuildEngine dotnet
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
- /p:Configuration=Release
+ /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
+ /p:Configuration=Release
+ ${{ parameters.signingValidationAdditionalParameters }}
- ${{ if eq(parameters.enableSourceLinkValidation, 'true') }}:
- job:
@@ -77,18 +86,45 @@ stages:
-GHRepoName $(Build.Repository.Name)
-GHCommit $(Build.SourceVersion)
-SourcelinkCliVersion $(SourceLinkCLIVersion)
+ continueOnError: true
- ${{ if eq(parameters.SDLValidationParameters.enable, 'true') }}:
- template: /eng/common/templates/job/execute-sdl.yml
parameters:
additionalParameters: ${{ parameters.SDLValidationParameters.params }}
+- template: \eng\common\templates\post-build\channels\netcore-dev-5.yml
+ parameters:
+ enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
+ publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
+
- template: \eng\common\templates\post-build\channels\public-dev-release.yml
parameters:
enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
+ publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
+
+- template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml
+ parameters:
+ enableSymbolValidation: ${{ parameters.enableSymbolValidation }}
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
+ publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
- template: \eng\common\templates\post-build\channels\public-validation-release.yml
+ parameters:
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
+ publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
- template: \eng\common\templates\post-build\channels\public-release.yml
+ parameters:
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
- template: \eng\common\templates\post-build\channels\internal-servicing.yml
+ parameters:
+ symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }}
+ artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
diff --git a/eng/common/templates/post-build/promote-build.yml b/eng/common/templates/post-build/promote-build.yml
index 9387c583b..6b479c3b8 100644
--- a/eng/common/templates/post-build/promote-build.yml
+++ b/eng/common/templates/post-build/promote-build.yml
@@ -5,7 +5,7 @@ jobs:
- job:
displayName: Promote Build
dependsOn: setupMaestroVars
- condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], ${{ parameters.ChannelId }})
+ condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', ${{ parameters.ChannelId }}))
variables:
- name: BARBuildId
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ]
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 8fe2b11ad..9c12b1b4f 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -39,6 +39,10 @@
# installed on the machine instead of downloading one.
[bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true }
+# Enable repos to use a particular version of the on-line dotnet-install scripts.
+# default URL: https://dot.net/v1/dotnet-install.ps1
+[string]$dotnetInstallScriptVersion = if (Test-Path variable:dotnetInstallScriptVersion) { $dotnetInstallScriptVersion } else { "v1" }
+
# True to use global NuGet cache instead of restoring packages to repository-local directory.
[bool]$useGlobalNuGetCache = if (Test-Path variable:useGlobalNuGetCache) { $useGlobalNuGetCache } else { !$ci }
@@ -159,7 +163,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
$installScript = Join-Path $dotnetRoot "dotnet-install.ps1"
if (!(Test-Path $installScript)) {
Create-Directory $dotnetRoot
- Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile $installScript
+ Invoke-WebRequest "https://dot.net/$dotnetInstallScriptVersion/dotnet-install.ps1" -OutFile $installScript
}
return $installScript
@@ -518,6 +522,9 @@ function MSBuild-Core() {
if ($warnAsError) {
$cmdArgs += " /warnaserror /p:TreatWarningsAsErrors=true"
}
+ else {
+ $cmdArgs += " /p:TreatWarningsAsErrors=false"
+ }
foreach ($arg in $args) {
if ($arg -ne $null -and $arg.Trim() -ne "") {
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 738bb5669..3af9be615 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -45,6 +45,10 @@ warn_as_error=${warn_as_error:-true}
# installed on the machine instead of downloading one.
use_installed_dotnet_cli=${use_installed_dotnet_cli:-true}
+# Enable repos to use a particular version of the on-line dotnet-install scripts.
+# default URL: https://dot.net/v1/dotnet-install.sh
+dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'}
+
# True to use global NuGet cache instead of restoring packages to repository-local directory.
if [[ "$ci" == true ]]; then
use_global_nuget_cache=${use_global_nuget_cache:-false}
@@ -195,7 +199,7 @@ function InstallDotNet {
function GetDotNetInstallScript {
local root=$1
local install_script="$root/dotnet-install.sh"
- local install_script_url="https://dot.net/v1/dotnet-install.sh"
+ local install_script_url="https://dot.net/$dotnetInstallScriptVersion/dotnet-install.sh"
if [[ ! -a "$install_script" ]]; then
mkdir -p "$root"
diff --git a/global.json b/global.json
index 6c742c4eb..323946328 100644
--- a/global.json
+++ b/global.json
@@ -3,6 +3,6 @@
"dotnet": "3.0.100-preview6-012264"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19377.2"
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19421.1"
}
}
diff --git a/src/CopyToLatest/targets/BranchInfo.props b/src/CopyToLatest/targets/BranchInfo.props
index d103b00f0..f11bec24c 100644
--- a/src/CopyToLatest/targets/BranchInfo.props
+++ b/src/CopyToLatest/targets/BranchInfo.props
@@ -1,5 +1,5 @@
- release/3.0.1xx
+ release/3.0.100-preview9