diff --git a/Directory.Build.props b/Directory.Build.props index fe43161d7..02487bf33 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -13,7 +13,7 @@ true true - netcoreapp3.1 + netcoreapp5.0 NU5125;NU5105;NU1701 diff --git a/NuGet.config b/NuGet.config index 84e92e811..e82be11a9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -3,7 +3,6 @@ - @@ -12,12 +11,11 @@ - - - + + diff --git a/README.md b/README.md index e2ef7b5a5..7a8dddb72 100644 --- a/README.md +++ b/README.md @@ -51,17 +51,17 @@ With development builds, internal NuGet feeds are necessary for some scenarios ( ``` -| Platform | Master
(5.0.x Runtime) | Release/3.1.1XX
(3.1.x Runtime) | Release/3.0.1xx
(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
(5.0.x Runtime) | Release/3.1.1XX
(3.1.x Runtime) | Release/3.0.1xx
(3.0.x Runtime) | Release/2.2.4XX
(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.1.1xx]][win-x64-version-3.1.1xx]
[Installer][win-x64-installer-3.1.1xx] - [Checksum][win-x64-installer-checksum-3.1.1xx]
[zip][win-x64-zip-3.1.1xx] - [Checksum][win-x64-zip-checksum-3.1.1xx] | [![][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-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.1.1xx]][win-x86-version-3.1.1xx]
[Installer][win-x86-installer-3.1.1xx] - [Checksum][win-x86-installer-checksum-3.1.1xx]
[zip][win-x86-zip-3.1.1xx] - [Checksum][win-x86-zip-checksum-3.1.1xx] | [![][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-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.1.1xx]][osx-version-3.1.1xx]
[Installer][osx-installer-3.1.1xx] - [Checksum][osx-installer-checksum-3.1.1xx]
[tar.gz][osx-targz-3.1.1xx] - [Checksum][osx-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][linux-version-3.1.1xx]
[DEB Installer][linux-DEB-installer-3.1.1xx] - [Checksum][linux-DEB-installer-checksum-3.1.1xx]
[RPM Installer][linux-RPM-installer-3.1.1xx] - [Checksum][linux-RPM-installer-checksum-3.1.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.1.1xx] - [Checksum][linux-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][linux-arm-version-3.1.1xx]
[tar.gz][linux-arm-targz-3.1.1xx] - [Checksum][linux-arm-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][linux-arm64-version-3.1.1xx]
[tar.gz][linux-arm64-targz-3.1.1xx] - [Checksum][linux-arm64-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][rhel-6-version-3.1.1xx]
[tar.gz][rhel-6-targz-3.1.1xx] - [Checksum][rhel-6-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][linux-musl-version-3.1.1xx]
[tar.gz][linux-musl-targz-3.1.1xx] - [Checksum][linux-musl-targz-checksum-3.1.1xx] | [![][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-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.1.1xx]][win-arm-version-3.1.1xx]
[zip][win-arm-zip-3.1.1xx] - [Checksum][win-arm-zip-checksum-3.1.1xx] | [![][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-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** | +| **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.1.1xx]][win-x64-version-3.1.1xx]
[Installer][win-x64-installer-3.1.1xx] - [Checksum][win-x64-installer-checksum-3.1.1xx]
[zip][win-x64-zip-3.1.1xx] - [Checksum][win-x64-zip-checksum-3.1.1xx] | [![][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-2.2.4xx]][win-x64-version-2.2.4xx]
[Installer][win-x64-installer-2.2.4xx] - [Checksum][win-x64-installer-checksum-2.2.4xx]
[zip][win-x64-zip-2.2.4xx] - [Checksum][win-x64-zip-checksum-2.2.4xx] |[![][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.1.1xx]][win-x86-version-3.1.1xx]
[Installer][win-x86-installer-3.1.1xx] - [Checksum][win-x86-installer-checksum-3.1.1xx]
[zip][win-x86-zip-3.1.1xx] - [Checksum][win-x86-zip-checksum-3.1.1xx] | [![][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-2.2.4xx]][win-x86-version-2.2.4xx]
[Installer][win-x86-installer-2.2.4xx] - [Checksum][win-x86-installer-checksum-2.2.4xx]
[zip][win-x86-zip-2.2.4xx] - [Checksum][win-x86-zip-checksum-2.2.4xx] |[![][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.1.1xx]][osx-version-3.1.1xx]
[Installer][osx-installer-3.1.1xx] - [Checksum][osx-installer-checksum-3.1.1xx]
[tar.gz][osx-targz-3.1.1xx] - [Checksum][osx-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][osx-version-2.2.4xx]
[Installer][osx-installer-2.2.4xx] - [Checksum][osx-installer-checksum-2.2.4xx]
[tar.gz][osx-targz-2.2.4xx] - [Checksum][osx-targz-checksum-2.2.4xx] |[![][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.1.1xx]][linux-version-3.1.1xx]
[DEB Installer][linux-DEB-installer-3.1.1xx] - [Checksum][linux-DEB-installer-checksum-3.1.1xx]
[RPM Installer][linux-RPM-installer-3.1.1xx] - [Checksum][linux-RPM-installer-checksum-3.1.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.1.1xx] - [Checksum][linux-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][linux-version-2.2.4xx]
[DEB Installer][linux-DEB-installer-2.2.4xx] - [Checksum][linux-DEB-installer-checksum-2.2.4xx]
[RPM Installer][linux-RPM-installer-2.2.4xx] - [Checksum][linux-RPM-installer-checksum-2.2.4xx]
_see installer note below_1
[tar.gz][linux-targz-2.2.4xx] - [Checksum][linux-targz-checksum-2.2.4xx] |[![][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.1.1xx]][linux-arm-version-3.1.1xx]
[tar.gz][linux-arm-targz-3.1.1xx] - [Checksum][linux-arm-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][linux-arm-version-2.2.4xx]
[tar.gz][linux-arm-targz-2.2.4xx] - [Checksum][linux-arm-targz-checksum-2.2.4xx] | [![][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.1.1xx]][linux-arm64-version-3.1.1xx]
[tar.gz][linux-arm64-targz-3.1.1xx] - [Checksum][linux-arm64-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][linux-arm64-version-2.2.4xx]
[tar.gz][linux-arm64-targz-2.2.4xx] - [Checksum][linux-arm64-targz-checksum-2.2.4xx] | [![][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.1.1xx]][rhel-6-version-3.1.1xx]
[tar.gz][rhel-6-targz-3.1.1xx] - [Checksum][rhel-6-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][rhel-6-version-2.2.4xx]
[tar.gz][rhel-6-targz-2.2.4xx] - [Checksum][rhel-6-targz-checksum-2.2.4xx] | [![][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.1.1xx]][linux-musl-version-3.1.1xx]
[tar.gz][linux-musl-targz-3.1.1xx] - [Checksum][linux-musl-targz-checksum-3.1.1xx] | [![][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-2.2.4xx]][linux-musl-version-2.2.4xx]
[tar.gz][linux-musl-targz-2.2.4xx] - [Checksum][linux-musl-targz-checksum-2.2.4xx] | [![][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.1.1xx]][win-arm-version-3.1.1xx]
[zip][win-arm-zip-3.1.1xx] - [Checksum][win-arm-zip-checksum-3.1.1xx] | [![][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-2.2.4xx]][win-arm-version-2.2.4xx]
[zip][win-arm-zip-2.2.4xx] - [Checksum][win-arm-zip-checksum-2.2.4xx] | [![][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.1.1xx]][freebsd-x64-version-3.1.1xx]
[tar.gz][freebsd-x64-zip-3.1.1xx] - [Checksum][freebsd-x64-zip-checksum-3.1.1xx] | [![][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] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | | **Constituent Repo Shas** | **N/A** | **N/A** | [Git SHAs][sdk-shas-2.2.1XX] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | @@ -93,12 +93,12 @@ Reference notes: [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-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 -[win-x64-installer-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x64.exe -[win-x64-installer-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x64.exe.sha -[win-x64-zip-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x64.zip -[win-x64-zip-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x64.zip.sha +[win-x64-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/win_x64_Release_version_badge.svg +[win-x64-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[win-x64-installer-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x64.exe +[win-x64-installer-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x64.exe.sha +[win-x64-zip-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x64.zip +[win-x64-zip-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x64.zip.sha [win-x64-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/win_x64_Release_version_badge.svg [win-x64-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -114,12 +114,12 @@ Reference notes: [win-x64-zip-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-win-x64.zip [win-x64-zip-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-win-x64.zip.sha -[win-x64-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/win_x64_Release_version_badge.svg -[win-x64-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[win-x64-installer-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x64.exe -[win-x64-installer-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x64.exe.sha -[win-x64-zip-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x64.zip -[win-x64-zip-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x64.zip.sha +[win-x64-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/win_x64_Release_version_badge.svg +[win-x64-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[win-x64-installer-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x64.exe +[win-x64-installer-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x64.exe.sha +[win-x64-zip-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x64.zip +[win-x64-zip-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x64.zip.sha [win-x64-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/win_x64_Release_version_badge.svg [win-x64-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -163,12 +163,12 @@ Reference notes: [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 -[win-x86-installer-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x86.exe -[win-x86-installer-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x86.exe.sha -[win-x86-zip-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x86.zip -[win-x86-zip-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-x86.zip.sha +[win-x86-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/win_x86_Release_version_badge.svg +[win-x86-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[win-x86-installer-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x86.exe +[win-x86-installer-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x86.exe.sha +[win-x86-zip-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x86.zip +[win-x86-zip-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-x86.zip.sha [win-x86-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/win_x86_Release_version_badge.svg [win-x86-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -184,12 +184,12 @@ Reference notes: [win-x86-zip-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-win-x86.zip [win-x86-zip-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-win-x86.zip.sha -[win-x86-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/win_x86_Release_version_badge.svg -[win-x86-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[win-x86-installer-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x86.exe -[win-x86-installer-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x86.exe.sha -[win-x86-zip-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x86.zip -[win-x86-zip-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-win-x86.zip.sha +[win-x86-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/win_x86_Release_version_badge.svg +[win-x86-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[win-x86-installer-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x86.exe +[win-x86-installer-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x86.exe.sha +[win-x86-zip-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x86.zip +[win-x86-zip-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-win-x86.zip.sha [win-x86-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/win_x86_Release_version_badge.svg [win-x86-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -233,12 +233,12 @@ Reference notes: [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 -[osx-installer-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-osx-x64.pkg -[osx-installer-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-osx-x64.pkg.sha -[osx-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-osx-x64.tar.gz -[osx-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-osx-x64.tar.gz.sha +[osx-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/osx_x64_Release_version_badge.svg +[osx-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[osx-installer-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-osx-x64.pkg +[osx-installer-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-osx-x64.pkg.sha +[osx-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-osx-x64.tar.gz +[osx-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-osx-x64.tar.gz.sha [osx-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/osx_x64_Release_version_badge.svg [osx-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -254,12 +254,12 @@ Reference notes: [osx-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-osx-x64.tar.gz [osx-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-osx-x64.tar.gz.sha -[osx-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/osx_x64_Release_version_badge.svg -[osx-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[osx-installer-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-osx-x64.pkg -[osx-installer-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-osx-x64.pkg.sha -[osx-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-osx-x64.tar.gz -[osx-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-osx-x64.tar.gz.sha +[osx-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/osx_x64_Release_version_badge.svg +[osx-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[osx-installer-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-osx-x64.pkg +[osx-installer-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-osx-x64.pkg.sha +[osx-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-osx-x64.tar.gz +[osx-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-osx-x64.tar.gz.sha [osx-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/osx_x64_Release_version_badge.svg [osx-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -311,14 +311,14 @@ Reference notes: [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 -[linux-DEB-installer-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-x64.deb -[linux-DEB-installer-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-x64.deb.sha -[linux-RPM-installer-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-x64.rpm -[linux-RPM-installer-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-x64.rpm.sha -[linux-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-x64.tar.gz -[linux-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-x64.tar.gz.sha +[linux-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/linux_x64_Release_version_badge.svg +[linux-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[linux-DEB-installer-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-x64.deb +[linux-DEB-installer-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-x64.deb.sha +[linux-RPM-installer-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-x64.rpm +[linux-RPM-installer-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-x64.rpm.sha +[linux-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-x64.tar.gz +[linux-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-x64.tar.gz.sha [linux-badge-2.2.2xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/linux_x64_Release_version_badge.svg [linux-version-2.2.2xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -338,14 +338,14 @@ Reference notes: [linux-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-x64.tar.gz [linux-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-x64.tar.gz.sha -[linux-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/linux_x64_Release_version_badge.svg -[linux-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[linux-DEB-installer-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-x64.deb -[linux-DEB-installer-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-x64.deb.sha -[linux-RPM-installer-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-x64.rpm -[linux-RPM-installer-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-x64.rpm.sha -[linux-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-x64.tar.gz -[linux-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-x64.tar.gz.sha +[linux-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/linux_x64_Release_version_badge.svg +[linux-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[linux-DEB-installer-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-x64.deb +[linux-DEB-installer-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-x64.deb.sha +[linux-RPM-installer-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-x64.rpm +[linux-RPM-installer-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-x64.rpm.sha +[linux-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-x64.tar.gz +[linux-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-x64.tar.gz.sha [linux-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/linux_x64_Release_version_badge.svg [linux-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -385,10 +385,10 @@ Reference notes: [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 -[linux-arm-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-arm.tar.gz -[linux-arm-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-arm.tar.gz.sha +[linux-arm-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/linux_arm_Release_version_badge.svg +[linux-arm-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[linux-arm-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-arm.tar.gz +[linux-arm-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-arm.tar.gz.sha [linux-arm-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/linux_arm_Release_version_badge.svg [linux-arm-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -400,10 +400,10 @@ Reference notes: [linux-arm-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-arm.tar.gz [linux-arm-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-arm.tar.gz.sha -[linux-arm-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/linux_arm_Release_version_badge.svg -[linux-arm-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[linux-arm-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-arm.tar.gz -[linux-arm-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-arm.tar.gz.sha +[linux-arm-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/linux_arm_Release_version_badge.svg +[linux-arm-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[linux-arm-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-arm.tar.gz +[linux-arm-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-arm.tar.gz.sha [linux-arm-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/linux_arm_Release_version_badge.svg [linux-arm-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -435,10 +435,10 @@ Reference notes: [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 -[linux-arm64-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-arm64.tar.gz -[linux-arm64-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha +[linux-arm64-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/linux_arm64_Release_version_badge.svg +[linux-arm64-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[linux-arm64-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-arm64.tar.gz +[linux-arm64-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha [linux-arm64-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/linux_arm64_Release_version_badge.svg [linux-arm64-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -450,10 +450,10 @@ Reference notes: [linux-arm64-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-arm64.tar.gz [linux-arm64-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha -[linux-arm64-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/linux_arm64_Release_version_badge.svg -[linux-arm64-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[linux-arm64-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-arm64.tar.gz -[linux-arm64-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha +[linux-arm64-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/linux_arm64_Release_version_badge.svg +[linux-arm64-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[linux-arm64-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-arm64.tar.gz +[linux-arm64-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha [linux-arm64-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/linux_arm64_Release_version_badge.svg [linux-arm64-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -485,10 +485,10 @@ Reference notes: [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 -[rhel-6-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-rhel.6-x64.tar.gz -[rhel-6-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha +[rhel-6-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/rhel.6_x64_Release_version_badge.svg +[rhel-6-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[rhel-6-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz +[rhel-6-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha [rhel-6-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/rhel.6_x64_Release_version_badge.svg [rhel-6-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -500,10 +500,10 @@ Reference notes: [rhel-6-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz [rhel-6-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha -[rhel-6-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/rhel.6_x64_Release_version_badge.svg -[rhel-6-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[rhel-6-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-rhel.6-x64.tar.gz -[rhel-6-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha +[rhel-6-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/rhel.6_x64_Release_version_badge.svg +[rhel-6-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[rhel-6-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-rhel.6-x64.tar.gz +[rhel-6-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha [rhel-6-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/rhel.6_x64_Release_version_badge.svg [rhel-6-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -535,10 +535,10 @@ Reference notes: [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 -[linux-musl-targz-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz -[linux-musl-targz-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha +[linux-musl-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/linux_musl_x64_Release_version_badge.svg +[linux-musl-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[linux-musl-targz-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-musl-x64.tar.gz +[linux-musl-targz-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha [linux-musl-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/linux_musl_x64_Release_version_badge.svg [linux-musl-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version @@ -550,10 +550,10 @@ Reference notes: [linux-musl-targz-2.2.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz [linux-musl-targz-checksum-2.2.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha -[linux-musl-badge-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/linux_musl_x64_Release_version_badge.svg -[linux-musl-version-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/latest.version -[linux-musl-targz-2.1.7XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-musl-x64.tar.gz -[linux-musl-targz-checksum-2.1.7XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.7xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha +[linux-musl-badge-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/linux_musl_x64_Release_version_badge.svg +[linux-musl-version-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/latest.version +[linux-musl-targz-2.1.8XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-musl-x64.tar.gz +[linux-musl-targz-checksum-2.1.8XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.1.8xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha [linux-musl-badge-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/linux_musl_x64_Release_version_badge.svg [linux-musl-version-2.1.6XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.1.6xx/latest.version @@ -585,10 +585,10 @@ Reference notes: [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 -[win-arm-zip-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-arm.zip -[win-arm-zip-checksum-2.2.3XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/dotnet-sdk-latest-win-arm.zip.sha +[win-arm-badge-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/win_arm_Release_version_badge.svg +[win-arm-version-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/latest.version +[win-arm-zip-2.2.4XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-arm.zip +[win-arm-zip-checksum-2.2.4XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/2.2.4xx/dotnet-sdk-latest-win-arm.zip.sha [win-arm-badge-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/win_arm_Release_version_badge.svg [win-arm-version-2.2.2XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.2xx/latest.version diff --git a/eng/TestVersions.props b/eng/TestVersions.props index e69853514..3a2ece51e 100644 --- a/eng/TestVersions.props +++ b/eng/TestVersions.props @@ -1,10 +1,10 @@ - 5.0.0-preview1.5663 - 3.0.100-preview.18580.6 + 5.0.0 + $(MicrosoftDotnetToolsetInternalPackageVersion) 0.1.1 15.8.0 - 3.0.0-preview-27218-01 + 3.0.0 1.3.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3dd75827c..b63cc201c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,33 +1,37 @@ - - https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + + https://github.com/dotnet/windowsdesktop + cf45b69616065b019197c1d4b9a4901ed71eae84 - - https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + + https://github.com/dotnet/windowsdesktop + cf45b69616065b019197c1d4b9a4901ed71eae84 - - https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + + https://github.com/dotnet/windowsdesktop + cf45b69616065b019197c1d4b9a4901ed71eae84 - + https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + 138d7d2544aa836d73b8711998877fb0ed6620cb - + https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + 138d7d2544aa836d73b8711998877fb0ed6620cb - + https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + 138d7d2544aa836d73b8711998877fb0ed6620cb - + https://github.com/dotnet/core-setup - 5672978d912db81b4b677fddff264907a47ec9a8 + 138d7d2544aa836d73b8711998877fb0ed6620cb + + + https://github.com/dotnet/core-setup + 138d7d2544aa836d73b8711998877fb0ed6620cb @@ -35,62 +39,62 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/corefx - 427c7bd763aeea6c2391eec6fa7ae9ea1a2847c0 + 567241af05d1e43142d04572dee84870b78761aa - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 - + https://github.com/aspnet/AspNetCore - 7ef5dd3af4868fcd69778c922b48e1f429fb0aa6 + 74360c7d97f9b55b94fecbd6e0598daf0c1b7cd1 https://github.com/dotnet/test-templates 6ae8a6e7dd862c9447771c108d43fb9028f22c22 - + https://github.com/dotnet/templating - fa98e14b1b8d84a1a711ef909384f16ada8bbe7c + 40bcaca36d5db25dae9f9ad7e85891fc73714320 - + https://github.com/dotnet/toolset - 86c9e404628dd209963f3bbd9a46e4938b0b2ab2 + afa5f4c566ce34f827d21ebcbc8aefe7dcb08b39 - + https://github.com/dotnet/sdk - 34097cd518efe783071279653b9aa9a32e14d24f + 419501cb5731805c7e49bae276a2938e7c1844de - - https://github.com/dotnet/cli - 55fc1ed9117b267b9f027c1fd92bbb2137cedd91 + + https://github.com/dotnet/toolset + afa5f4c566ce34f827d21ebcbc8aefe7dcb08b39 - - + + https://github.com/dotnet/winforms - d890296011263c2fd459a2c4ae63d522d1f651ba + aa251536c8ae637e95faf529480e8020d69aa361 - + https://github.com/dotnet/wpf - 94ba9d2ba78eda787981ce11fd5a55b4788254bb + 11a8ba5060577dbddae4303e53583f8d4a82f172 @@ -100,9 +104,9 @@ - + https://github.com/dotnet/arcade - 0e9ffd6464aff37aef2dc41dc2162d258f266e32 + 5ce0aaed2f8df9cd2fe0221a426c021efe37f655 diff --git a/eng/Versions.props b/eng/Versions.props index 8a641d680..be9872785 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -12,19 +12,20 @@ preview - 3.1.100-preview2.19527.2 + + 5.0.100-alpha1.19522.14 - 4.8.1-preview1.19523.5 + 5.0.0-alpha1.19462.11 - 3.1.0-preview2.19525.4 + 5.0.0-alpha1.19462.16 - 3.1.0-preview1.19476.7 + 5.0.0-alpha1.19428.1 @@ -36,40 +37,44 @@ - 3.1.0-preview2.19525.8 - 3.1.0-preview2.19525.8 - 3.1.0-preview2.19525.8 - 3.1.0-preview2.19525.8 - 3.1.0-preview2.19525.8 - 3.1.0-preview2.19525.8 + 5.0.0-alpha1.19522.13 + 5.0.0-alpha1.19522.13 + 5.0.0-alpha1.19522.13 + 5.0.0-alpha1.19522.13 + 5.0.0-alpha1.19522.13 + 5.0.0-alpha1.19522.13 - 3.1.100-preview2.19526.1 + 5.0.100-alpha1.19522.14 0.2.0 - 3.1.100-preview2.19527.1 + 5.0.100-alpha1.19501.2 $(MicrosoftNETSdkPackageVersion) - 3.1.0-preview2.19523.17 + 5.0.0-alpha.1.19525.3 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 - 3.1.0-preview2.19525.6 + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 2.1.0 + + + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 + 5.0.0-alpha1.19528.2 + @@ -88,7 +93,7 @@ $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - $(MicrosoftDotNetCommonItemTemplates31PackageVersion) + 3.1.0-preview1.19475.1 $(MicrosoftAspNetCoreAppRuntimePackageVersion) 4.8.0-rc2.19462.10 @@ -108,7 +113,7 @@ 1.5.3 1.0.2-beta3 $(MicrosoftDotNetCommonItemTemplates21PackageVersion) - 1.0.2-beta4-20181009-2100240 + 1.0.2-beta4.19511.1 2.1.12 diff --git a/eng/common/build.ps1 b/eng/common/build.ps1 index e001ccb48..55dff3320 100644 --- a/eng/common/build.ps1 +++ b/eng/common/build.ps1 @@ -18,6 +18,7 @@ Param( [switch] $sign, [switch] $pack, [switch] $publish, + [switch] $clean, [switch][Alias('bl')]$binaryLog, [switch] $ci, [switch] $prepareMachine, @@ -48,6 +49,7 @@ function Print-Usage() { Write-Host " -pack Package build outputs into NuGet packages and Willow components" Write-Host " -sign Sign build outputs" Write-Host " -publish Publish artifacts (e.g. symbols)" + Write-Host " -clean Clean the solution" Write-Host "" Write-Host "Advanced settings:" @@ -112,6 +114,14 @@ function Build { @properties } +if ($clean) { + if(Test-Path $ArtifactsDir) { + Remove-Item -Recurse -Force $ArtifactsDir + Write-Host "Artifacts directory deleted." + } + exit 0 +} + try { if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) { Print-Usage @@ -123,14 +133,7 @@ try { $nodeReuse = $false } - # Import custom tools configuration, if present in the repo. - # Note: Import in global scope so that the script set top-level variables without qualification. - $configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1" - if (Test-Path $configureToolsetScript) { - . $configureToolsetScript - } - - if (($restore) -and ($null -eq $env:DisableNativeToolsetInstalls)) { + if ($restore) { InitializeNativeTools } diff --git a/eng/common/build.sh b/eng/common/build.sh index 6236fc4d3..36f9aa046 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -26,6 +26,7 @@ usage() echo " --pack Package build outputs into NuGet packages and Willow components" echo " --sign Sign build outputs" echo " --publish Publish artifacts (e.g. symbols)" + echo " --clean Clean the solution" echo "" echo "Advanced settings:" @@ -62,6 +63,7 @@ publish=false sign=false public=false ci=false +clean=false warn_as_error=true node_reuse=true @@ -82,6 +84,9 @@ while [[ $# > 0 ]]; do usage exit 0 ;; + -clean) + clean=true + ;; -configuration|-c) configuration=$2 shift @@ -196,20 +201,15 @@ function Build { ExitWithExitCode 0 } -# Import custom tools configuration, if present in the repo. -configure_toolset_script="$eng_root/configure-toolset.sh" -if [[ -a "$configure_toolset_script" ]]; then - . "$configure_toolset_script" +if [[ "$clean" == true ]]; then + if [ -d "$artifacts_dir" ]; then + rm -rf $artifacts_dir + echo "Artifacts directory deleted." + fi + exit 0 fi -# TODO: https://github.com/dotnet/arcade/issues/1468 -# Temporary workaround to avoid breaking change. -# Remove once repos are updated. -if [[ -n "${useInstalledDotNetCli:-}" ]]; then - use_installed_dotnet_cli="$useInstalledDotNetCli" -fi - -if [[ "$restore" == true && -z ${DisableNativeToolsetInstalls:-} ]]; then +if [[ "$restore" == true ]]; then InitializeNativeTools fi diff --git a/eng/common/darc-init.ps1 b/eng/common/darc-init.ps1 index 46d175fdf..5d7eaa5f9 100644 --- a/eng/common/darc-init.ps1 +++ b/eng/common/darc-init.ps1 @@ -1,7 +1,8 @@ param ( $darcVersion = $null, $versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16", - $verbosity = "m" + $verbosity = "m", + $toolpath = $null ) . $PSScriptRoot\tools.ps1 @@ -23,11 +24,15 @@ function InstallDarcCli ($darcVersion) { $darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content } - $arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json' + $arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' Write-Host "Installing Darc CLI version $darcVersion..." Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed." - & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g + if (-not $toolpath) { + & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g + }else { + & "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath" + } } InstallDarcCli $darcVersion diff --git a/eng/common/darc-init.sh b/eng/common/darc-init.sh index 242429bca..82b2b5767 100755 --- a/eng/common/darc-init.sh +++ b/eng/common/darc-init.sh @@ -20,6 +20,10 @@ while [[ $# > 0 ]]; do verbosity=$2 shift ;; + --toolpath) + toolpath=$2 + shift + ;; *) echo "Invalid argument: $1" usage @@ -52,17 +56,27 @@ function InstallDarcCli { InitializeDotNetCli local dotnet_root=$_InitializeDotNetCli - local uninstall_command=`$dotnet_root/dotnet tool uninstall $darc_cli_package_name -g` - local tool_list=$($dotnet_root/dotnet tool list -g) - if [[ $tool_list = *$darc_cli_package_name* ]]; then - echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g) + if [ -z "$toolpath" ]; then + local tool_list=$($dotnet_root/dotnet tool list -g) + if [[ $tool_list = *$darc_cli_package_name* ]]; then + echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g) + fi + else + local tool_list=$($dotnet_root/dotnet tool list --tool-path "$toolpath") + if [[ $tool_list = *$darc_cli_package_name* ]]; then + echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name --tool-path "$toolpath") + fi fi - local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" + local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" echo "Installing Darc CLI version $darcVersion..." echo "You may need to restart your command shell if this is the first dotnet tool you have installed." - echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g) + if [ -z "$toolpath" ]; then + echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g) + else + echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath") + fi } InstallDarcCli diff --git a/eng/common/dotnet-install.ps1 b/eng/common/dotnet-install.ps1 index 0b629b830..ec3e739fe 100644 --- a/eng/common/dotnet-install.ps1 +++ b/eng/common/dotnet-install.ps1 @@ -3,7 +3,9 @@ Param( [string] $verbosity = "minimal", [string] $architecture = "", [string] $version = "Latest", - [string] $runtime = "dotnet" + [string] $runtime = "dotnet", + [string] $RuntimeSourceFeed = "", + [string] $RuntimeSourceFeedKey = "" ) . $PSScriptRoot\tools.ps1 @@ -15,7 +17,7 @@ try { if ($architecture -and $architecture.Trim() -eq "x86") { $installdir = Join-Path $installdir "x86" } - InstallDotNet $installdir $version $architecture $runtime $true + InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey } catch { Write-Host $_ diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index c3072c958..94ea34388 100755 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -14,6 +14,8 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" version='Latest' architecture='' runtime='dotnet' +runtimeSourceFeed='' +runtimeSourceFeedKey='' while [[ $# > 0 ]]; do opt="$(echo "$1" | awk '{print tolower($0)}')" case "$opt" in @@ -29,18 +31,55 @@ while [[ $# > 0 ]]; do shift runtime="$1" ;; + -runtimesourcefeed) + shift + runtimeSourceFeed="$1" + ;; + -runtimesourcefeedkey) + shift + runtimeSourceFeedKey="$1" + ;; *) echo "Invalid argument: $1" - usage exit 1 ;; esac shift done +# Use uname to determine what the CPU is. +cpuname=$(uname -p) +# Some Linux platforms report unknown for platform, but the arch for machine. +if [[ "$cpuname" == "unknown" ]]; then + cpuname=$(uname -m) +fi + +case $cpuname in + aarch64) + buildarch=arm64 + ;; + amd64|x86_64) + buildarch=x64 + ;; + armv7l) + buildarch=arm + ;; + i686) + buildarch=x86 + ;; + *) + echo "Unknown CPU $cpuname detected, treating it as x64" + buildarch=x64 + ;; +esac + . "$scriptroot/tools.sh" dotnetRoot="$repo_root/.dotnet" -InstallDotNet $dotnetRoot $version "$architecture" $runtime true || { +if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then + dotnetRoot="$dotnetRoot/$architecture" +fi + +InstallDotNet $dotnetRoot $version "$architecture" $runtime true $runtimeSourceFeed $runtimeSourceFeedKey || { local exit_code=$? echo "dotnet-install.sh failed (exit code '$exit_code')." >&2 ExitWithExitCode $exit_code diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1 index 8cf18bcfe..0fc0503ab 100644 --- a/eng/common/init-tools-native.ps1 +++ b/eng/common/init-tools-native.ps1 @@ -133,6 +133,7 @@ try { if (Test-Path $InstallBin) { Write-Host "Native tools are available from" (Convert-Path -Path $InstallBin) Write-Host "##vso[task.prependpath]$(Convert-Path -Path $InstallBin)" + return $InstallBin } else { Write-Error "Native tools install directory does not exist, installation failed" diff --git a/eng/common/native/install-cmake-test.sh b/eng/common/native/install-cmake-test.sh old mode 100644 new mode 100755 diff --git a/eng/common/post-build/post-build-utils.ps1 b/eng/common/post-build/post-build-utils.ps1 index 551ae113f..aa9a025c0 100644 --- a/eng/common/post-build/post-build-utils.ps1 +++ b/eng/common/post-build/post-build-utils.ps1 @@ -8,6 +8,7 @@ Set-StrictMode -Version 2.0 # scripts don't necessarily execute in the same agent that run the # build.ps1/sh script this variable isn't automatically set. $ci = $true +$disableConfigureToolsetImport = "true" . $PSScriptRoot\..\tools.ps1 function Create-MaestroApiRequestHeaders([string]$ContentType = "application/json") { diff --git a/eng/common/post-build/setup-maestro-vars.ps1 b/eng/common/post-build/setup-maestro-vars.ps1 deleted file mode 100644 index d7f64dc63..000000000 --- a/eng/common/post-build/setup-maestro-vars.ps1 +++ /dev/null @@ -1,26 +0,0 @@ -param( - [Parameter(Mandatory=$true)][string] $ReleaseConfigsPath # Full path to ReleaseConfigs.txt asset -) - -. $PSScriptRoot\post-build-utils.ps1 - -try { - $Content = Get-Content $ReleaseConfigsPath - - $BarId = $Content | Select -Index 0 - - $Channels = "" - $Content | Select -Index 1 | ForEach-Object { $Channels += "$_ ," } - - $IsStableBuild = $Content | Select -Index 2 - - Write-PipelineSetVariable -Name 'BARBuildId' -Value $BarId - Write-PipelineSetVariable -Name 'InitialChannels' -Value "$Channels" - Write-PipelineSetVariable -Name 'IsStableBuild' -Value $IsStableBuild -} -catch { - Write-Host $_ - Write-Host $_.Exception - Write-Host $_.ScriptStackTrace - ExitWithExitCode 1 -} diff --git a/eng/common/sdl/execute-all-sdl-tools.ps1 b/eng/common/sdl/execute-all-sdl-tools.ps1 index 01799d63f..eb21321ba 100644 --- a/eng/common/sdl/execute-all-sdl-tools.ps1 +++ b/eng/common/sdl/execute-all-sdl-tools.ps1 @@ -1,30 +1,30 @@ Param( - [string] $GuardianPackageName, # Required: the name of guardian CLI package (not needed if GuardianCliLocation is specified) - [string] $NugetPackageDirectory, # Required: directory where NuGet packages are installed (not needed if GuardianCliLocation is specified) - [string] $GuardianCliLocation, # Optional: Direct location of Guardian CLI executable if GuardianPackageName & NugetPackageDirectory are not specified - [string] $Repository=$env:BUILD_REPOSITORY_NAME, # Required: the name of the repository (e.g. dotnet/arcade) - [string] $BranchName=$env:BUILD_SOURCEBRANCH, # Optional: name of branch or version of gdn settings; defaults to master - [string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY, # Required: the directory where source files are located - [string] $ArtifactsDirectory = (Join-Path $env:BUILD_SOURCESDIRECTORY ("artifacts")), # Required: the directory where build artifacts are located - [string] $AzureDevOpsAccessToken, # Required: access token for dnceng; should be provided via KeyVault - [string[]] $SourceToolsList, # Optional: list of SDL tools to run on source code - [string[]] $ArtifactToolsList, # Optional: list of SDL tools to run on built artifacts - [bool] $TsaPublish=$False, # Optional: true will publish results to TSA; only set to true after onboarding to TSA; TSA is the automated framework used to upload test results as bugs. - [string] $TsaBranchName=$env:BUILD_SOURCEBRANCH, # Optional: required for TSA publish; defaults to $(Build.SourceBranchName); TSA is the automated framework used to upload test results as bugs. - [string] $TsaRepositoryName=$env:BUILD_REPOSITORY_NAME, # Optional: TSA repository name; will be generated automatically if not submitted; TSA is the automated framework used to upload test results as bugs. - [string] $BuildNumber=$env:BUILD_BUILDNUMBER, # Optional: required for TSA publish; defaults to $(Build.BuildNumber) - [bool] $UpdateBaseline=$False, # Optional: if true, will update the baseline in the repository; should only be run after fixing any issues which need to be fixed - [bool] $TsaOnboard=$False, # Optional: if true, will onboard the repository to TSA; should only be run once; TSA is the automated framework used to upload test results as bugs. - [string] $TsaInstanceUrl, # Optional: only needed if TsaOnboard or TsaPublish is true; the instance-url registered with TSA; TSA is the automated framework used to upload test results as bugs. - [string] $TsaCodebaseName, # Optional: only needed if TsaOnboard or TsaPublish is true; the name of the codebase registered with TSA; TSA is the automated framework used to upload test results as bugs. - [string] $TsaProjectName, # Optional: only needed if TsaOnboard or TsaPublish is true; the name of the project registered with TSA; TSA is the automated framework used to upload test results as bugs. - [string] $TsaNotificationEmail, # Optional: only needed if TsaOnboard is true; the email(s) which will receive notifications of TSA bug filings (e.g. alias@microsoft.com); TSA is the automated framework used to upload test results as bugs. - [string] $TsaCodebaseAdmin, # Optional: only needed if TsaOnboard is true; the aliases which are admins of the TSA codebase (e.g. DOMAIN\alias); TSA is the automated framework used to upload test results as bugs. - [string] $TsaBugAreaPath, # Optional: only needed if TsaOnboard is true; the area path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs. - [string] $TsaIterationPath, # Optional: only needed if TsaOnboard is true; the iteration path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs. - [string] $GuardianLoggerLevel="Standard", # Optional: the logger level for the Guardian CLI; options are Trace, Verbose, Standard, Warning, and Error - [string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1") - [string[]] $PoliCheckAdditionalRunConfigParams # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1") + [string] $GuardianPackageName, # Required: the name of guardian CLI package (not needed if GuardianCliLocation is specified) + [string] $NugetPackageDirectory, # Required: directory where NuGet packages are installed (not needed if GuardianCliLocation is specified) + [string] $GuardianCliLocation, # Optional: Direct location of Guardian CLI executable if GuardianPackageName & NugetPackageDirectory are not specified + [string] $Repository=$env:BUILD_REPOSITORY_NAME, # Required: the name of the repository (e.g. dotnet/arcade) + [string] $BranchName=$env:BUILD_SOURCEBRANCH, # Optional: name of branch or version of gdn settings; defaults to master + [string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY, # Required: the directory where source files are located + [string] $ArtifactsDirectory = (Join-Path $env:BUILD_ARTIFACTSTAGINGDIRECTORY ("artifacts")), # Required: the directory where build artifacts are located + [string] $AzureDevOpsAccessToken, # Required: access token for dnceng; should be provided via KeyVault + [string[]] $SourceToolsList, # Optional: list of SDL tools to run on source code + [string[]] $ArtifactToolsList, # Optional: list of SDL tools to run on built artifacts + [bool] $TsaPublish=$False, # Optional: true will publish results to TSA; only set to true after onboarding to TSA; TSA is the automated framework used to upload test results as bugs. + [string] $TsaBranchName=$env:BUILD_SOURCEBRANCH, # Optional: required for TSA publish; defaults to $(Build.SourceBranchName); TSA is the automated framework used to upload test results as bugs. + [string] $TsaRepositoryName=$env:BUILD_REPOSITORY_NAME, # Optional: TSA repository name; will be generated automatically if not submitted; TSA is the automated framework used to upload test results as bugs. + [string] $BuildNumber=$env:BUILD_BUILDNUMBER, # Optional: required for TSA publish; defaults to $(Build.BuildNumber) + [bool] $UpdateBaseline=$False, # Optional: if true, will update the baseline in the repository; should only be run after fixing any issues which need to be fixed + [bool] $TsaOnboard=$False, # Optional: if true, will onboard the repository to TSA; should only be run once; TSA is the automated framework used to upload test results as bugs. + [string] $TsaInstanceUrl, # Optional: only needed if TsaOnboard or TsaPublish is true; the instance-url registered with TSA; TSA is the automated framework used to upload test results as bugs. + [string] $TsaCodebaseName, # Optional: only needed if TsaOnboard or TsaPublish is true; the name of the codebase registered with TSA; TSA is the automated framework used to upload test results as bugs. + [string] $TsaProjectName, # Optional: only needed if TsaOnboard or TsaPublish is true; the name of the project registered with TSA; TSA is the automated framework used to upload test results as bugs. + [string] $TsaNotificationEmail, # Optional: only needed if TsaOnboard is true; the email(s) which will receive notifications of TSA bug filings (e.g. alias@microsoft.com); TSA is the automated framework used to upload test results as bugs. + [string] $TsaCodebaseAdmin, # Optional: only needed if TsaOnboard is true; the aliases which are admins of the TSA codebase (e.g. DOMAIN\alias); TSA is the automated framework used to upload test results as bugs. + [string] $TsaBugAreaPath, # Optional: only needed if TsaOnboard is true; the area path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs. + [string] $TsaIterationPath, # Optional: only needed if TsaOnboard is true; the iteration path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs. + [string] $GuardianLoggerLevel="Standard", # Optional: the logger level for the Guardian CLI; options are Trace, Verbose, Standard, Warning, and Error + [string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1") + [string[]] $PoliCheckAdditionalRunConfigParams # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1") ) $ErrorActionPreference = "Stop" diff --git a/eng/common/sdl/extract-artifact-packages.ps1 b/eng/common/sdl/extract-artifact-packages.ps1 index 6e6825013..d857ae219 100644 --- a/eng/common/sdl/extract-artifact-packages.ps1 +++ b/eng/common/sdl/extract-artifact-packages.ps1 @@ -10,6 +10,7 @@ Set-StrictMode -Version 2.0 # scripts don't necessarily execute in the same agent that run the # build.ps1/sh script this variable isn't automatically set. $ci = $true +$disableConfigureToolsetImport = "true" . $PSScriptRoot\..\tools.ps1 $ExtractPackage = { diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml index a7f996419..9a00430d6 100644 --- a/eng/common/templates/job/execute-sdl.yml +++ b/eng/common/templates/job/execute-sdl.yml @@ -24,15 +24,15 @@ jobs: buildType: current downloadType: specific files matchingPattern: "**" - downloadPath: $(Build.SourcesDirectory)\artifacts + downloadPath: $(Build.ArtifactStagingDirectory)\artifacts - powershell: eng/common/sdl/extract-artifact-packages.ps1 - -InputPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts - -ExtractPath $(Build.SourcesDirectory)\artifacts\BlobArtifacts + -InputPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts + -ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\BlobArtifacts displayName: Extract Blob Artifacts continueOnError: ${{ parameters.sdlContinueOnError }} - powershell: eng/common/sdl/extract-artifact-packages.ps1 - -InputPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts - -ExtractPath $(Build.SourcesDirectory)\artifacts\PackageArtifacts + -InputPath $(Build.ArtifactStagingDirectory)\artifacts\PackageArtifacts + -ExtractPath $(Build.ArtifactStagingDirectory)\artifacts\PackageArtifacts displayName: Extract Package Artifacts continueOnError: ${{ parameters.sdlContinueOnError }} - task: NuGetToolInstaller@1 diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index ffda80a19..ecebd0f03 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -1,67 +1,33 @@ +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + parameters: # Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job cancelTimeoutInMinutes: '' - condition: '' - - continueOnError: false - container: '' - + continueOnError: false dependsOn: '' - displayName: '' - - steps: [] - pool: '' - + steps: [] strategy: '' - timeoutInMinutes: '' - variables: [] - workspace: '' - # Job base template specific parameters - # Optional: Enable installing Microbuild plugin - # if 'true', these "variables" must be specified in the variables object or as part of the queue matrix - # _TeamName - the name of your team - # _SignType - 'test' or 'real' +# Job base template specific parameters + # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md + artifacts: '' enableMicrobuild: false - - # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - - # 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 - - # Optional: enable sending telemetry - enableTelemetry: false - - # Optional: define the helix repo for telemetry (example: 'dotnet/arcade') - helixRepo: '' - - # Optional: define the helix type for telemetry (example: 'build/product/') - helixType: '' - - # Required: name of the job + enablePublishUsingPipelines: false name: '' - - # Optional: should run as a public build even in the internal project - # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + preSteps: [] runAsPublic: false -# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, -# and some (Microbuild) should only be applied to non-PR cases for internal builds. - jobs: - job: ${{ parameters.name }} @@ -93,7 +59,7 @@ jobs: timeoutInMinutes: ${{ parameters.timeoutInMinutes }} variables: - - ${{ if eq(parameters.enableTelemetry, 'true') }}: + - ${{ if ne(parameters.enableTelemetry, 'false') }}: - name: DOTNET_CLI_TELEMETRY_PROFILE value: '$(Build.Repository.Uri)' - ${{ each variable in parameters.variables }}: @@ -125,21 +91,12 @@ jobs: workspace: ${{ parameters.workspace }} steps: - - ${{ if eq(parameters.enableTelemetry, 'true') }}: - # Telemetry tasks are built from https://github.com/dotnet/arcade-extensions - - task: sendStartTelemetry@0 - displayName: 'Send Helix Start Telemetry' - inputs: - helixRepo: ${{ parameters.helixRepo }} - ${{ if ne(parameters.helixType, '') }}: - helixType: ${{ parameters.helixType }} - buildConfig: $(_BuildConfig) - runAsPublic: ${{ parameters.runAsPublic }} - continueOnError: ${{ parameters.continueOnError }} - condition: always() + - ${{ if ne(parameters.preSteps, '') }}: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} - - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - task: MicroBuildSigningPlugin@2 displayName: Install MicroBuild plugin inputs: @@ -151,9 +108,16 @@ jobs: continueOnError: ${{ parameters.continueOnError }} condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) - - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - task: NuGetAuthenticate@0 + - ${{ if or(eq(parameters.artifacts.download, 'true'), ne(parameters.artifacts.download, '')) }}: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: current + artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }} + targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }} + itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }} + - ${{ each step in parameters.steps }}: - ${{ step }} @@ -166,20 +130,60 @@ jobs: env: TeamName: $(_TeamName) - - ${{ if eq(parameters.enableTelemetry, 'true') }}: - # Telemetry tasks are built from https://github.com/dotnet/arcade-extensions - - task: sendEndTelemetry@0 - displayName: 'Send Helix End Telemetry' - continueOnError: ${{ parameters.continueOnError }} - condition: always() + - ${{ if ne(parameters.artifacts.publish, '') }}: + - ${{ if or(eq(parameters.artifacts.publish.artifacts, 'true'), ne(parameters.artifacts.publish.artifacts, '')) }}: + - task: CopyFiles@2 + displayName: Gather binaries for publish to artifacts + inputs: + SourceFolder: 'artifacts/bin' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin' + - task: CopyFiles@2 + displayName: Gather packages for publish to artifacts + inputs: + SourceFolder: 'artifacts/packages' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages' + - task: PublishBuildArtifacts@1 + displayName: Publish pipeline artifacts + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} + continueOnError: true + condition: always() + - ${{ if or(eq(parameters.artifacts.publish.logs, 'true'), ne(parameters.artifacts.publish.logs, '')) }}: + - publish: artifacts/log + artifact: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} + displayName: Publish logs + continueOnError: true + condition: always() + - ${{ if or(eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if and(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: + SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest' + TargetFolder: '$(Build.ArtifactStagingDirectory)/AssetManifests' + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) - - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: + - task: PublishBuildArtifacts@1 + displayName: Push Asset Manifests + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/AssetManifests' + PublishLocation: Container + ArtifactName: AssetManifests + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) + + - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' PublishLocation: Container - ArtifactName: $(Agent.Os)_$(Agent.JobName) + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} continueOnError: true condition: always() diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml index 6a2f98c03..c08225a9a 100644 --- a/eng/common/templates/jobs/jobs.yml +++ b/eng/common/templates/jobs/jobs.yml @@ -1,19 +1,10 @@ parameters: - # Optional: 'true' if failures in job.yml job should not fail the job + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md continueOnError: false - # Optional: Enable installing Microbuild plugin - # if 'true', these "variables" must be specified in the variables object or as part of the queue matrix - # _TeamName - the name of your team - # _SignType - 'test' or 'real' - enableMicrobuild: false - # Optional: Include PublishBuildArtifacts task enablePublishBuildArtifacts: false - # Optional: Enable publishing to the build asset registry - enablePublishBuildAssets: false - # Optional: Enable publishing using release pipelines enablePublishUsingPipelines: false @@ -23,19 +14,9 @@ parameters: # Optional: Include toolset dependencies in the generated graph files includeToolset: false - # Optional: Include PublishTestResults task - enablePublishTestResults: false - - # Optional: enable sending telemetry - # if enabled then the 'helixRepo' parameter should also be specified - enableTelemetry: false - # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job jobs: [] - # Optional: define the helix repo for telemetry (example: 'dotnet/arcade') - helixRepo: '' - # Optional: Override automatically derived dependsOn value for "publish build assets" job publishBuildAssetsDependsOn: '' @@ -62,29 +43,30 @@ jobs: name: ${{ job.job }} -- ${{ if and(eq(parameters.enablePublishBuildAssets, true), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: ../job/publish-build-assets.yml - parameters: - continueOnError: ${{ parameters.continueOnError }} - dependsOn: - - ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}: - - ${{ each job in parameters.publishBuildAssetsDependsOn }}: - - ${{ job.job }} - - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: - - ${{ each job in parameters.jobs }}: - - ${{ job.job }} - pool: - vmImage: vs2017-win2016 - runAsPublic: ${{ parameters.runAsPublic }} - publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} - enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} - -- ${{ if and(eq(parameters.graphFileGeneration.enabled, true), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: ../job/generate-graph-files.yml - parameters: - continueOnError: ${{ parameters.continueOnError }} - includeToolset: ${{ parameters.graphFileGeneration.includeToolset }} - dependsOn: - - Asset_Registry_Publish - pool: - vmImage: vs2017-win2016 +- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - template: ../job/publish-build-assets.yml + parameters: + continueOnError: ${{ parameters.continueOnError }} + dependsOn: + - ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.publishBuildAssetsDependsOn }}: + - ${{ job.job }} + - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.jobs }}: + - ${{ job.job }} + pool: + vmImage: vs2017-win2016 + runAsPublic: ${{ parameters.runAsPublic }} + publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} + enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} + + - ${{ if eq(parameters.graphFileGeneration.enabled, true) }}: + - template: ../job/generate-graph-files.yml + parameters: + continueOnError: ${{ parameters.continueOnError }} + includeToolset: ${{ parameters.graphFileGeneration.includeToolset }} + dependsOn: + - Asset_Registry_Publish + pool: + vmImage: vs2017-win2016 diff --git a/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml index cdb74031f..e77e4b911 100644 --- a/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml +++ b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml @@ -1,10 +1,12 @@ parameters: artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false stages: - stage: NetCore_3_Tools_Validation_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET 3 Tools - Validation Publishing @@ -81,7 +83,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-3-tools.yml b/eng/common/templates/post-build/channels/netcore-3-tools.yml index 70eec773e..b7103833a 100644 --- a/eng/common/templates/post-build/channels/netcore-3-tools.yml +++ b/eng/common/templates/post-build/channels/netcore-3-tools.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_3_Tools_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET 3 Tools Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-dev-31.yml b/eng/common/templates/post-build/channels/netcore-dev-31.yml index db2125418..1c6a8ed4a 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-31.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-31.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_Dev31_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Core 3.1 Dev Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-dev-5.yml b/eng/common/templates/post-build/channels/netcore-dev-5.yml index c4f5a16ac..6e7d7e42c 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-5.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_Dev5_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Core 5 Dev Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-internal-30.yml b/eng/common/templates/post-build/channels/netcore-internal-30.yml index 177b38df3..732015258 100644 --- a/eng/common/templates/post-build/channels/netcore-internal-30.yml +++ b/eng/common/templates/post-build/channels/netcore-internal-30.yml @@ -1,10 +1,12 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_30_Internal_Servicing_Publishing - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Core 3.0 Internal Servicing Publishing @@ -32,6 +34,18 @@ stages: artifactName: 'PDBArtifacts' continueOnError: true + # This is necessary whenever we want to publish/restore to an AzDO private feed + # Since sdk-task.ps1 tries to restore packages we need to do this authentication here + # otherwise it'll complain about accessing a private feed. + - task: NuGetAuthenticate@0 + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish inputs: @@ -114,7 +128,6 @@ stages: /p:ChecksumsAzureAccountKey=$(InternalChecksumsBlobFeedKey) /p:InstallersTargetStaticFeed=$(InternalInstallersBlobFeedUrl) /p:InstallersAzureAccountKey=$(InternalInstallersBlobFeedKey) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-release-30.yml b/eng/common/templates/post-build/channels/netcore-release-30.yml index 16ade0db2..410f6de4c 100644 --- a/eng/common/templates/post-build/channels/netcore-release-30.yml +++ b/eng/common/templates/post-build/channels/netcore-release-30.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_Release30_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Core 3.0 Release Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-release-31.yml b/eng/common/templates/post-build/channels/netcore-release-31.yml index 01d56410c..e05699cd8 100644 --- a/eng/common/templates/post-build/channels/netcore-release-31.yml +++ b/eng/common/templates/post-build/channels/netcore-release-31.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_Release31_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Core 3.1 Release Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-tools-latest.yml b/eng/common/templates/post-build/channels/netcore-tools-latest.yml index 157d2d4b9..5cea6264f 100644 --- a/eng/common/templates/post-build/channels/netcore-tools-latest.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml @@ -1,11 +1,13 @@ parameters: - symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false + symbolPublishingAdditionalParameters: '' stages: - stage: NetCore_Tools_Latest_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Tools - Latest Publishing @@ -116,7 +118,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/channels/netcore-tools-validation.yml b/eng/common/templates/post-build/channels/netcore-tools-validation.yml index d8447e49a..b5e214255 100644 --- a/eng/common/templates/post-build/channels/netcore-tools-validation.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-validation.yml @@ -1,10 +1,12 @@ parameters: artifactsPublishingAdditionalParameters: '' + dependsOn: + - Validate publishInstallersAndChecksums: false stages: - stage: PVR_Publish - dependsOn: validate + dependsOn: ${{ parameters.dependsOn }} variables: - template: ../common-variables.yml displayName: .NET Tools - Validation Publishing @@ -81,7 +83,6 @@ stages: /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) - /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 7ee82d9ff..913ac244a 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -16,11 +16,14 @@ parameters: signingValidationAdditionalParameters: '' # Which stages should finish execution before post-build stages start - dependsOn: [build] + validateDependsOn: + - build + publishDependsOn: + - Validate stages: -- stage: validate - dependsOn: ${{ parameters.dependsOn }} +- stage: Validate + dependsOn: ${{ parameters.validateDependsOn }} displayName: Validate jobs: - ${{ if eq(parameters.enableNugetValidation, 'true') }}: @@ -45,6 +48,9 @@ stages: - ${{ if eq(parameters.enableSigningValidation, 'true') }}: - job: displayName: Signing Validation + variables: + - template: common-variables.yml + - group: AzureDevOps-Artifact-Feeds-Pats pool: vmImage: 'windows-2019' steps: @@ -54,6 +60,19 @@ stages: buildType: current artifactName: PackageArtifacts + # This is necessary whenever we want to publish/restore to an AzDO private feed + # Since sdk-task.ps1 tries to restore packages we need to do this authentication here + # otherwise it'll complain about accessing a private feed. + - task: NuGetAuthenticate@0 + condition: eq(variables['IsInternalBuild'], 'true') + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Validate inputs: @@ -97,51 +116,60 @@ stages: - template: \eng\common\templates\post-build\channels\netcore-dev-5.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - + - template: \eng\common\templates\post-build\channels\netcore-dev-31.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - template: \eng\common\templates\post-build\channels\netcore-tools-latest.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - template: \eng\common\templates\post-build\channels\netcore-tools-validation.yml parameters: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - template: \eng\common\templates\post-build\channels\netcore-3-tools-validation.yml parameters: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - template: \eng\common\templates\post-build\channels\netcore-3-tools.yml parameters: + dependsOn: ${{ parameters.publishDependsOn }} symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - template: \eng\common\templates\post-build\channels\netcore-release-30.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - template: \eng\common\templates\post-build\channels\netcore-release-31.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - template: \eng\common\templates\post-build\channels\netcore-internal-30.yml parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + dependsOn: ${{ parameters.publishDependsOn }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} diff --git a/eng/common/templates/post-build/setup-maestro-vars.yml b/eng/common/templates/post-build/setup-maestro-vars.yml index 56242b068..716b53f74 100644 --- a/eng/common/templates/post-build/setup-maestro-vars.yml +++ b/eng/common/templates/post-build/setup-maestro-vars.yml @@ -4,6 +4,8 @@ jobs: pool: vmImage: 'windows-2019' steps: + - checkout: none + - task: DownloadBuildArtifacts@0 displayName: Download Release Configs inputs: @@ -14,5 +16,25 @@ jobs: name: setReleaseVars displayName: Set Release Configs Vars inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/setup-maestro-vars.ps1 - arguments: -ReleaseConfigsPath '$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt' + targetType: inline + script: | + try { + $Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt + + $BarId = $Content | Select -Index 0 + + $Channels = "" + $Content | Select -Index 1 | ForEach-Object { $Channels += "$_ ," } + + $IsStableBuild = $Content | Select -Index 2 + + Write-Host "##vso[task.setvariable variable=BARBuildId;isOutput=true]$BarId" + Write-Host "##vso[task.setvariable variable=InitialChannels;isOutput=true]$Channels" + Write-Host "##vso[task.setvariable variable=IsStableBuild;isOutput=true]$IsStableBuild" + } + catch { + Write-Host $_ + Write-Host $_.Exception + Write-Host $_.ScriptStackTrace + exit 1 + } diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml index 05df886f5..30becf01e 100644 --- a/eng/common/templates/steps/send-to-helix.yml +++ b/eng/common/templates/steps/send-to-helix.yml @@ -23,6 +23,7 @@ parameters: EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget." IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set + HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting int) Creator: '' # optional -- if the build is external, use this to specify who is sending the job DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() @@ -55,6 +56,7 @@ steps: DotNetCliVersion: ${{ parameters.DotNetCliVersion }} EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }} WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} Creator: ${{ parameters.Creator }} SYSTEM_ACCESSTOKEN: $(System.AccessToken) condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) @@ -85,6 +87,7 @@ steps: DotNetCliVersion: ${{ parameters.DotNetCliVersion }} EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }} WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} Creator: ${{ parameters.Creator }} SYSTEM_ACCESSTOKEN: $(System.AccessToken) condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT')) diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 91efea940..c4ca69dd4 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -49,6 +49,8 @@ # An array of names of processes to stop on script exit if prepareMachine is true. $processesToStopOnExit = if (Test-Path variable:processesToStopOnExit) { $processesToStopOnExit } else { @("msbuild", "dotnet", "vbcscompiler") } +$disableConfigureToolsetImport = if (Test-Path variable:disableConfigureToolsetImport) { $disableConfigureToolsetImport } else { $null } + set-strictmode -version 2.0 $ErrorActionPreference = "Stop" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 @@ -154,15 +156,6 @@ function InitializeDotNetCli([bool]$install) { # Make Sure that our bootstrapped dotnet cli is available in future steps of the Azure Pipelines build Write-PipelinePrependPath -Path $dotnetRoot - # Work around issues with Azure Artifacts credential provider - # https://github.com/dotnet/arcade/issues/3932 - if ($ci) { - $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 - $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 - Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' - Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' - } - Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1' @@ -184,7 +177,14 @@ function InstallDotNetSdk([string] $dotnetRoot, [string] $version, [string] $arc InstallDotNet $dotnetRoot $version $architecture } -function InstallDotNet([string] $dotnetRoot, [string] $version, [string] $architecture = "", [string] $runtime = "", [bool] $skipNonVersionedFiles = $false) { +function InstallDotNet([string] $dotnetRoot, + [string] $version, + [string] $architecture = "", + [string] $runtime = "", + [bool] $skipNonVersionedFiles = $false, + [string] $runtimeSourceFeed = "", + [string] $runtimeSourceFeedKey = "") { + $installScript = GetDotNetInstallScript $dotnetRoot $installParameters = @{ Version = $version @@ -195,10 +195,29 @@ function InstallDotNet([string] $dotnetRoot, [string] $version, [string] $archit if ($runtime) { $installParameters.Runtime = $runtime } if ($skipNonVersionedFiles) { $installParameters.SkipNonVersionedFiles = $skipNonVersionedFiles } - & $installScript @installParameters - if ($lastExitCode -ne 0) { - Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet cli (exit code '$lastExitCode')." - ExitWithExitCode $lastExitCode + try { + & $installScript @installParameters + } + catch { + Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet runtime '$runtime' from public location." + + # Only the runtime can be installed from a custom [private] location. + if ($runtime -and ($runtimeSourceFeed -or $runtimeSourceFeedKey)) { + if ($runtimeSourceFeed) { $installParameters.AzureFeed = $runtimeSourceFeed } + + if ($runtimeSourceFeedKey) { + $decodedBytes = [System.Convert]::FromBase64String($runtimeSourceFeedKey) + $decodedString = [System.Text.Encoding]::UTF8.GetString($decodedBytes) + $installParameters.FeedCredential = $decodedString + } + + try { + & $installScript @installParameters + } + catch { + Write-PipelineTelemetryError -Category "InitializeToolset" -Message "Failed to install dotnet runtime '$runtime' from custom location '$runtimeSourceFeed'." + } + } } } @@ -427,6 +446,9 @@ function GetSdkTaskProject([string]$taskName) { } function InitializeNativeTools() { + if ($env:DisableNativeToolsetInstalls) { + return + } if (Get-Member -InputObject $GlobalJson -Name "native-tools") { $nativeArgs= @{} if ($ci) { @@ -504,6 +526,11 @@ function MSBuild() { # https://github.com/dotnet/arcade/issues/3932 if ($ci -and $buildTool.Tool -eq "dotnet") { dotnet nuget locals http-cache -c + + $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 + $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' } $toolsetBuildProject = InitializeToolset @@ -603,3 +630,12 @@ Write-PipelineSetVariable -Name 'Artifacts.Toolset' -Value $ToolsetDir Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir Write-PipelineSetVariable -Name 'TEMP' -Value $TempDir Write-PipelineSetVariable -Name 'TMP' -Value $TempDir + +# Import custom tools configuration, if present in the repo. +# Note: Import in global scope so that the script set top-level variables without qualification. +if (!$disableConfigureToolsetImport) { + $configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1" + if (Test-Path $configureToolsetScript) { + . $configureToolsetScript + } +} diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 757d5b9ea..35a80c3f1 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -4,6 +4,7 @@ # CI mode - set to true on CI server for PR validation build or official build. ci=${ci:-false} +disable_configure_toolset_import=${disable_configure_toolset_import:-null} # Set to true to use the pipelines logger which will enable Azure logging output. # https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md @@ -152,15 +153,6 @@ function InitializeDotNetCli { # build steps from using anything other than what we've downloaded. Write-PipelinePrependPath -path "$dotnet_root" - # Work around issues with Azure Artifacts credential provider - # https://github.com/dotnet/arcade/issues/3932 - if [[ "$ci" == true ]]; then - export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 - export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 - Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" - Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" - fi - Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1" @@ -200,8 +192,28 @@ function InstallDotNet { fi bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg || { local exit_code=$? - Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK (exit code '$exit_code')." - ExitWithExitCode $exit_code + Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK from public location (exit code '$exit_code')." + + if [[ -n "$runtimeArg" ]]; then + local runtimeSourceFeed='' + if [[ -n "${6:-}" ]]; then + runtimeSourceFeed="--azure-feed $6" + fi + + local runtimeSourceFeedKey='' + if [[ -n "${7:-}" ]]; then + decodedFeedKey=`echo $7 | base64 --decode` + runtimeSourceFeedKey="--feed-credential $decodedFeedKey" + fi + + if [[ -n "$runtimeSourceFeed" || -n "$runtimeSourceFeedKey" ]]; then + bash "$install_script" --version $version --install-dir "$root" $archArg $runtimeArg $skipNonVersionedFilesArg $runtimeSourceFeed $runtimeSourceFeedKey || { + local exit_code=$? + Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK from custom location '$runtimeSourceFeed' (exit code '$exit_code')." + ExitWithExitCode $exit_code + } + fi + fi } } @@ -261,6 +273,9 @@ function GetNuGetPackageCachePath { } function InitializeNativeTools() { + if [[ -z "${DisableNativeToolsetInstalls:-}" ]]; then + return + fi if grep -Fq "native-tools" $global_json_file then local nativeArgs="" @@ -341,7 +356,12 @@ function MSBuild { # Work around issues with Azure Artifacts credential provider # https://github.com/dotnet/arcade/issues/3932 if [[ "$ci" == true ]]; then - dotnet nuget locals http-cache -c + "$_InitializeBuildTool" nuget locals http-cache -c + + export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 + export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 + Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" + Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" fi local toolset_dir="${_InitializeToolset%/*}" @@ -415,3 +435,18 @@ Write-PipelineSetVariable -name "Artifacts.Toolset" -value "$toolset_dir" Write-PipelineSetVariable -name "Artifacts.Log" -value "$log_dir" Write-PipelineSetVariable -name "Temp" -value "$temp_dir" Write-PipelineSetVariable -name "TMP" -value "$temp_dir" + +# Import custom tools configuration, if present in the repo. +if [[ "$disable_configure_toolset_import" != null ]]; then + configure_toolset_script="$eng_root/configure-toolset.sh" + if [[ -a "$configure_toolset_script" ]]; then + . "$configure_toolset_script" + fi +fi + +# TODO: https://github.com/dotnet/arcade/issues/1468 +# Temporary workaround to avoid breaking change. +# Remove once repos are updated. +if [[ -n "${useInstalledDotNetCli:-}" ]]; then + use_installed_dotnet_cli="$useInstalledDotNetCli" +fi diff --git a/global.json b/global.json index b9160312f..e4228d9e5 100644 --- a/global.json +++ b/global.json @@ -1,8 +1,8 @@ { "tools": { - "dotnet": "3.1.100-preview1-014459" + "dotnet": "5.0.100-alpha1-014915" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19474.3" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.19527.3" } } diff --git a/src/CopyToLatest/targets/BranchInfo.props b/src/CopyToLatest/targets/BranchInfo.props index 7a1921c15..9bd214aa9 100644 --- a/src/CopyToLatest/targets/BranchInfo.props +++ b/src/CopyToLatest/targets/BranchInfo.props @@ -1,5 +1,5 @@ - release/3.1.1xx + master diff --git a/src/redist/targets/BundledTemplates.targets b/src/redist/targets/BundledTemplates.targets index 02c0a1a2c..21d144f34 100644 --- a/src/redist/targets/BundledTemplates.targets +++ b/src/redist/targets/BundledTemplates.targets @@ -51,8 +51,8 @@ - - + + diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets index 32eac3228..18bfa55c2 100644 --- a/src/redist/targets/GenerateBundledVersions.targets +++ b/src/redist/targets/GenerateBundledVersions.targets @@ -14,12 +14,23 @@ <_NETStandardLibraryPackageVersion>$(NETStandardLibraryRefPackageVersion) <_NETCorePlatformsPackageVersion>$(MicrosoftNETCorePlatformsPackageVersion) - <_NETCoreApp30PRuntimePackVersion>3.0.0 + <_NETCoreApp30RuntimePackVersion>3.0.0 <_NETCoreApp30TargetingPackVersion>3.0.0 - <_WindowsDesktop30RuntimePackVersion>$(_NETCoreApp30PRuntimePackVersion) + + <_NETCoreApp31RuntimePackVersion>3.1.0-preview1.19506.1 + <_NETCoreApp31TargetingPackVersion>$(_NETCoreApp31RuntimePackVersion) + + <_WindowsDesktop30RuntimePackVersion>$(_NETCoreApp30RuntimePackVersion) <_WindowsDesktop30TargetingPackVersion>$(_NETCoreApp30TargetingPackVersion) + + <_WindowsDesktop31RuntimePackVersion>$(_NETCoreApp31RuntimePackVersion) + <_WindowsDesktop31TargetingPackVersion>$(_NETCoreApp31TargetingPackVersion) + <_AspNet30RuntimePackVersion>3.0.0 <_AspNet30TargetingPackVersion>3.0.0 + + <_AspNet31RuntimePackVersion>3.1.0-preview1.19508.20 + <_AspNet31TargetingPackVersion>$(_AspNet31RuntimePackVersion) <_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1]) @@ -46,7 +57,8 @@ win-x86; " /> - + + - + + - + + - + + + + + + + + + + + + + + @@ -290,12 +372,11 @@ Copyright (c) .NET Foundation. All rights reserved. RuntimePackRuntimeIdentifiers="@(AspNetCore30RuntimePackRids, '%3B')" /> - - ]]> diff --git a/src/redist/targets/GenerateLayout.targets b/src/redist/targets/GenerateLayout.targets index 5248ebeda..2ba2ef71d 100644 --- a/src/redist/targets/GenerateLayout.targets +++ b/src/redist/targets/GenerateLayout.targets @@ -13,11 +13,12 @@ $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) $(MicrosoftNETCoreAppInternalPackageVersion) + $(MicrosoftWindowsDesktopAppPackageVersion) $(CoreSetupBlobVersion) $(AspNetCoreBlobVersion) - $(CoreSetupBlobVersion) + $(WindowsDesktopBlobVersion) 3.0.0 @@ -97,7 +98,7 @@ $(CoreSetupBlobRootUrl)Runtime/ $(CoreSetupBlobRootUrl)aspnetcore/Runtime/ - $(CoreSetupRootUrl) + $(CoreSetupBlobRootUrl)WindowsDesktop/ $(IntermediateDirectory)/coreSetupDownload/$(MicrosoftNETCoreAppRuntimePackageVersion) $(CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension) @@ -202,7 +203,7 @@ - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) + $(CoreSetupRootUrl)$(NETCoreAppTargetingPackBlobVersion) $(CoreSetupRootUrl)3.0.0 $(DownloadedNetStandardTargetingPackInstallerFileName) $(CoreSetupBlobAccessTokenParam) @@ -238,7 +239,7 @@ - $(CoreSetupRootUrl)$(WindowsDesktopTargetingPackBlobVersion) + $(WinFormsAndWpfSharedFxRootUrl)$(WindowsDesktopTargetingPackBlobVersion) $(DownloadedWindowsDesktopTargetingPackInstallerFileName) $(CoreSetupBlobAccessTokenParam) @@ -321,14 +322,14 @@ - $(WinFormsAndWpfSharedFxRootUrl)$(CoreSetupBlobVersion) + $(WinFormsAndWpfSharedFxRootUrl)$(WindowsDesktopTargetingPackBlobVersion) $(WinFormsAndWpfSharedFxArchiveFileName) $(CoreSetupBlobAccessTokenParam) - $(WinFormsAndWpfSharedFxRootUrl)$(CoreSetupBlobVersion) + $(WinFormsAndWpfSharedFxRootUrl)$(WindowsDesktopBlobVersion) $(DownloadedWinFormsAndWpfSharedFrameworkInstallerFileName) $(CoreSetupBlobAccessTokenParam) diff --git a/src/redist/targets/GenerateRPMs.targets b/src/redist/targets/GenerateRPMs.targets index d904d87cb..f17eee9d6 100644 --- a/src/redist/targets/GenerateRPMs.targets +++ b/src/redist/targets/GenerateRPMs.targets @@ -288,6 +288,7 @@ Outputs="$(RpmTestResultsXmlFile)" > + diff --git a/src/redist/targets/Versions.targets b/src/redist/targets/Versions.targets index e1d48c098..0a5653a1e 100644 --- a/src/redist/targets/Versions.targets +++ b/src/redist/targets/Versions.targets @@ -1,10 +1,10 @@ - 3 - 1 + 5 + 0 1 00 - preview2 + alpha1 diff --git a/test/EndToEnd/GivenFrameworkDependentApps.cs b/test/EndToEnd/GivenFrameworkDependentApps.cs index bfc399813..b871ac309 100644 --- a/test/EndToEnd/GivenFrameworkDependentApps.cs +++ b/test/EndToEnd/GivenFrameworkDependentApps.cs @@ -19,7 +19,7 @@ namespace EndToEnd [ClassData(typeof(SupportedNetCoreAppVersions))] public void ItDoesNotRollForwardToTheLatestVersionOfNetCore(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0") { // https://github.com/dotnet/core-sdk/issues/621 return; @@ -31,7 +31,7 @@ namespace EndToEnd [ClassData(typeof(SupportedAspNetCoreVersions))] public void ItDoesNotRollForwardToTheLatestVersionOfAspNetCoreApp(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0") { // https://github.com/dotnet/core-sdk/issues/621 return; diff --git a/test/EndToEnd/GivenSelfContainedAppsRollForward.cs b/test/EndToEnd/GivenSelfContainedAppsRollForward.cs index 9dda617fa..6b85a2400 100644 --- a/test/EndToEnd/GivenSelfContainedAppsRollForward.cs +++ b/test/EndToEnd/GivenSelfContainedAppsRollForward.cs @@ -23,7 +23,7 @@ namespace EndToEnd [ClassData(typeof(SupportedNetCoreAppVersions))] public void ItRollsForwardToTheLatestNetCoreVersion(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0") { // https://github.com/dotnet/core-sdk/issues/621 return; @@ -35,7 +35,7 @@ namespace EndToEnd [ClassData(typeof(SupportedAspNetCoreVersions))] public void ItRollsForwardToTheLatestAspNetCoreAppVersion(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0") { // https://github.com/dotnet/core-sdk/issues/621 return; diff --git a/test/EndToEnd/ProjectBuildTests.cs b/test/EndToEnd/ProjectBuildTests.cs index c666d2af1..ab3558dc8 100644 --- a/test/EndToEnd/ProjectBuildTests.cs +++ b/test/EndToEnd/ProjectBuildTests.cs @@ -36,8 +36,9 @@ namespace EndToEnd.Tests var runCommand = new RunCommand() .WithWorkingDirectory(projectDirectory) .ExecuteWithCapturedOutput() - .Should().Pass() - .And.HaveStdOutContaining("Hello World!"); + // Templates are still at 3.1 and will not run on 5.0, revert to commented out assertion when 5.0 templates land + //.Should().Pass().And.HaveStdOutContaining("Hello World!"); + .Should().Fail().And.HaveStdErrContaining("https://aka.ms/dotnet-core-applaunch"); var binDirectory = new DirectoryInfo(projectDirectory).Sub("bin"); binDirectory.Should().HaveFilesMatching("*.dll", SearchOption.AllDirectories); @@ -79,8 +80,10 @@ namespace EndToEnd.Tests var runCommand = new RunCommand() .WithWorkingDirectory(projectDirectory) .ExecuteWithCapturedOutput() - .Should().Pass() - .And.HaveStdOutContaining("Hello World!"); + // Templates are still at 3.1 and will not run on 5.0, revert to commented out assertion when 5.0 templates land + //.Should().Pass().And.HaveStdOutContaining("Hello World!"); + .Should().Fail().And.HaveStdErrContaining("https://aka.ms/dotnet-core-applaunch"); + } [Theory] diff --git a/test/EndToEnd/SupportedNetCoreAppVersions.cs b/test/EndToEnd/SupportedNetCoreAppVersions.cs index ee70c9548..512b9e78a 100644 --- a/test/EndToEnd/SupportedNetCoreAppVersions.cs +++ b/test/EndToEnd/SupportedNetCoreAppVersions.cs @@ -23,6 +23,7 @@ namespace EndToEnd "2.2", "3.0", "3.1", + "5.0" }; } } diff --git a/test/Microsoft.DotNet.Tools.Tests.Utilities/RuntimeConfig.cs b/test/Microsoft.DotNet.Tools.Tests.Utilities/RuntimeConfig.cs new file mode 100644 index 000000000..e161dba3b --- /dev/null +++ b/test/Microsoft.DotNet.Tools.Tests.Utilities/RuntimeConfig.cs @@ -0,0 +1,77 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; +using System.Text.Json; +using System.IO; +using Microsoft.DotNet.Cli.Utils; + +namespace Microsoft.DotNet.TestFramework +{ + internal class RuntimeConfigFramework + { + public string Name { get; set; } + public string Version { get; set; } + } + + public class RuntimeConfig + { + public bool IsPortable { get; } + internal RuntimeConfigFramework Framework { get; } + + public RuntimeConfig(string runtimeConfigPath) + { + var jsonDocumentOptions = new JsonDocumentOptions + { + AllowTrailingCommas = true, + CommentHandling = JsonCommentHandling.Skip + }; + + using (var stream = File.OpenRead(runtimeConfigPath)) + using (JsonDocument doc = JsonDocument.Parse(stream, jsonDocumentOptions)) + { + JsonElement root = doc.RootElement; + if (root.TryGetProperty("runtimeOptions", out var runtimeOptionsRoot)) + { + if (runtimeOptionsRoot.TryGetProperty("framework", out var framework)) + { + var runtimeConfigFramework = new RuntimeConfigFramework(); + string name = null; + string version = null; + foreach (var property in framework.EnumerateObject()) + { + if (property.Name.Equals("name", StringComparison.OrdinalIgnoreCase)) + { + name = property.Value.GetString(); + } + + if (property.Name.Equals("version", StringComparison.OrdinalIgnoreCase)) + { + version = property.Value.GetString(); + } + } + + if (name == null || version == null) + { + Framework = null; + } + else + { + Framework = new RuntimeConfigFramework + { + Name = name, + Version = version + }; + } + } + else + { + Framework = null; + } + } + } + + IsPortable = Framework != null; + } + } +} \ No newline at end of file diff --git a/test/SdkTests/SdkTests.csproj b/test/SdkTests/SdkTests.csproj index d33fe2504..b50468b7f 100644 --- a/test/SdkTests/SdkTests.csproj +++ b/test/SdkTests/SdkTests.csproj @@ -83,6 +83,8 @@ + + diff --git a/test/SdkTests/TestConfig.xml b/test/SdkTests/TestConfig.xml index 13c5859e5..441cc6cc7 100644 --- a/test/SdkTests/TestConfig.xml +++ b/test/SdkTests/TestConfig.xml @@ -145,6 +145,29 @@ Skip="true" Issue="" Reason="Needs .NET Core 1.1"/> - + + + + + + + + +