diff --git a/DotnetCLIVersion.txt b/DotnetCLIVersion.txt index b8320e32..170f3fc4 100644 --- a/DotnetCLIVersion.txt +++ b/DotnetCLIVersion.txt @@ -1 +1 @@ -2.0.0-preview1-005899 +2.0.0-preview1-005977 diff --git a/RepoDirectories.props b/RepoDirectories.props index caf00182..f9deb67c 100644 --- a/RepoDirectories.props +++ b/RepoDirectories.props @@ -12,6 +12,7 @@ $(ObjDir) + $(DotNetRestorePackagesPath) $(RepoRoot)packages/ $(RepoRoot)Tools/ $(ToolRuntimePath)local/ @@ -27,4 +28,8 @@ $(BuildToolsTaskDir) $(ToolsDir)dotnetcli/ + + + $(BaseIntermediateOutputPath)HostMachineInfo.props + diff --git a/build.proj b/build.proj index 667eb783..9838df21 100644 --- a/build.proj +++ b/build.proj @@ -16,6 +16,7 @@ CreateOrUpdateCurrentVersionFile; CreateVersionInfoFile; + CreateHostMachineInfoFile; BatchRestorePackages; BuildCustomTasks; @@ -34,6 +35,26 @@ + + + + + + + +<Project> + <PropertyGroup> + <HostMachineRid>$(HostMachineRid)</HostMachineRid> + </PropertyGroup> +</Project> + + + + + + diff --git a/buildpipeline/Core-Setup-Linux-Arm-BT.json b/buildpipeline/Core-Setup-Linux-Arm-BT.json index 6457d98a..00ffb3a1 100644 --- a/buildpipeline/Core-Setup-Linux-Arm-BT.json +++ b/buildpipeline/Core-Setup-Linux-Arm-BT.json @@ -123,7 +123,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(PB_CrossBuildArgs)$(DockerCommonRunArgs) $(PB_GitDirectory)/build.sh -OfficialBuildId=$(OfficialBuildId) $(PB_BuildArguments)", + "arguments": "run --rm $(PB_CrossBuildArgs)$(DockerCommonRunArgs) $(PB_GitDirectory)/build.sh -OfficialBuildId=$(OfficialBuildId) $(PB_BuildArguments) -- $(PB_AdditionalMSBuildArguments)", "workingFolder": "$(PB_SourcesDirectory)", "failOnStandardError": "false" } @@ -141,7 +141,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DistroRid=$(PB_DistroRid) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)", + "arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64) $(PB_AdditionalMSBuildArguments)", "workingFolder": "$(PB_SourcesDirectory)", "failOnStandardError": "false" } @@ -357,19 +357,22 @@ "PB_AzureAccountName": { "value": "sourcebuild" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_AzureAccessToken": { "value": null, "isSecret": true }, - "PB_DistroRid": { - "value": "ubuntu.14.04-arm" - }, "PB_TargetArchitecture": { "value": "arm" }, "PB_AdditionalBuildArguments": { "value": "" }, + "PB_AdditionalMSBuildArguments": { + "value": "" + }, "PB_PortableBuild": { "value": "false" }, @@ -382,6 +385,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_ChecksumAzureAccessToken": { "value": null, "isSecret": true diff --git a/buildpipeline/Core-Setup-Linux-BT.json b/buildpipeline/Core-Setup-Linux-BT.json index 4aa8b3a9..342fb225 100644 --- a/buildpipeline/Core-Setup-Linux-BT.json +++ b/buildpipeline/Core-Setup-Linux-BT.json @@ -141,7 +141,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DistroRid=$(PB_DistroRid) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)", + "arguments": "run --privileged --rm $(DockerCommonRunArgs) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=Linux /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) /p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)", "workingFolder": "$(PB_SourcesDirectory)", "failOnStandardError": "false" } @@ -215,7 +215,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1404) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -233,7 +233,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1404) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -251,7 +251,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1404) /p:PublishDebToolToFeed=true /p:CliNuGetFeedUrl=$(CLI_NUGET_FEED_URL) /p:CliNuGetApiKey=$(CLI_NUGET_API_KEY) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1404) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:PublishDebToolToFeed=true /p:CliNuGetFeedUrl=$(CLI_NUGET_FEED_URL) /p:CliNuGetApiKey=$(CLI_NUGET_API_KEY) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -305,7 +305,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -323,7 +323,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -341,7 +341,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1604) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1604) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -395,7 +395,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -413,7 +413,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -431,7 +431,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Ubuntu1610) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Ubuntu1610) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -485,7 +485,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -503,7 +503,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -521,7 +521,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Debian8) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian8) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -575,7 +575,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -593,7 +593,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -611,7 +611,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Debian9) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Debian9) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -665,7 +665,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/build.proj /t:BuildTraversalBuildDependencies $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -683,7 +683,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments)", + "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/src/pkg/packaging/dir.proj $(AdditionalMSBuildProperties) $(DistroSpecificMSBuildArguments)", "workingFolder": "", "failOnStandardError": "false" } @@ -701,7 +701,7 @@ }, "inputs": { "filename": "docker", - "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj /p:DistroRid=$(DistroRid_Rhel7) $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", + "arguments": "run --rm $(DockerCommonRunArgs_Rhel7) $(PB_GitDirectory)/Tools/msbuild.sh $(PB_GitDirectory)/publish/publish.proj $(DistroSpecificMSBuildArguments) $(DistroSpecificMSBuildPublishArgs)", "workingFolder": "", "failOnStandardError": "false" } @@ -854,6 +854,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_ChecksumAzureAccessToken": { "value": null, "isSecret": true @@ -928,13 +931,13 @@ "PB_AzureAccountName": { "value": "sourcebuild" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_AzureAccessToken": { "value": null, "isSecret": true }, - "PB_DistroRid": { - "value": "ubuntu.14.04-$(PB_TargetArchitecture)" - }, "PB_TargetArchitecture": { "value": "x64" }, @@ -957,7 +960,7 @@ "value": "/flp:v=diag /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=false /p:ConfigurationGroup=$(BuildConfiguration) /p:OSGroup=Linux /p:OfficialBuildId=$(OfficialBuildId)" }, "DistroSpecificMSBuildPublishArgs": { - "value": "/p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) $(PB_DebianKeys)" + "value": "/p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:DebRepoUser=$(PB_DebRepoUser) /p:DebRepoServer=$(PB_DebRepoServer) /p:DebRepoPass=$(DEB_REPO_PASSWORD) $(PB_DebianKeys)" }, "PB_DebianKeys": { "value": "/p:DebianId_ubuntu1404-x64=$(PB_DebianId_ubuntu1404-x64) /p:DebianId_debian8-x64=$(PB_DebianId_debian8-x64) /p:DebianId_debian9-x64=$(PB_DebianId_debian9-x64) /p:DebianId_ubuntu1604-x64=$(PB_DebianId_ubuntu1604-x64) /p:DebianId_ubuntu1610-x64=$(PB_DebianId_ubuntu1610-x64)" @@ -965,9 +968,6 @@ "DockerTag_Ubuntu1404": { "value": "ubuntu-14.04-debpkg-e5cf912-20175003025046" }, - "DistroRid_Ubuntu1404": { - "value": "ubuntu.14.04-x64" - }, "DockerImageName_Ubuntu1404": { "value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1404)" }, @@ -977,9 +977,6 @@ "DockerTag_Ubuntu1604": { "value": "ubuntu-16.04-debpkg-e5cf912-20174703024721" }, - "DistroRid_Ubuntu1604": { - "value": "ubuntu.16.04-$(PB_TargetArchitecture)" - }, "DockerImageName_Ubuntu1604": { "value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1604)" }, @@ -989,9 +986,6 @@ "DockerTag_Ubuntu1610": { "value": "ubuntu-16.10-debpkg-ec863bb-20170003030028" }, - "DistroRid_Ubuntu1610": { - "value": "ubuntu.16.10-$(PB_TargetArchitecture)" - }, "DockerImageName_Ubuntu1610": { "value": "$(PB_DockerRepository):$(DockerTag_Ubuntu1610)" }, @@ -1001,9 +995,6 @@ "DockerTag_Debian8": { "value": "debian-8.2-debpkg-9f87c3c-20173003023006" }, - "DistroRid_Debian8": { - "value": "debian.8-$(PB_TargetArchitecture)" - }, "DockerImageName_Debian8": { "value": "$(PB_DockerRepository):$(DockerTag_Debian8)" }, @@ -1013,9 +1004,6 @@ "DockerTag_Debian9": { "value": "debian-8.2-debpkg-9f87c3c-20173003023006" }, - "DistroRid_Debian9": { - "value": "debian.9-$(PB_TargetArchitecture)" - }, "DockerImageName_Debian9": { "value": "$(PB_DockerRepository):$(DockerTag_Debian9)" }, @@ -1025,9 +1013,6 @@ "DockerTag_Rhel7": { "value": "rhel-7-rpmpkg-c982313-20174116044113" }, - "DistroRid_Rhel7": { - "value": "rhel.7-$(PB_TargetArchitecture)" - }, "DockerImageName_Rhel7": { "value": "$(PB_DockerRepository):$(DockerTag_Rhel7)" }, diff --git a/buildpipeline/Core-Setup-OSX-BT.json b/buildpipeline/Core-Setup-OSX-BT.json index 7872962e..e3273cbb 100644 --- a/buildpipeline/Core-Setup-OSX-BT.json +++ b/buildpipeline/Core-Setup-OSX-BT.json @@ -85,7 +85,7 @@ }, "inputs": { "filename": "$(PB_SourcesDirectory)/Tools/msbuild.sh", - "arguments": "$(PB_SourcesDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=OSX", + "arguments": "$(PB_SourcesDirectory)/publish/publish.proj /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:ConfigurationGroup=$(BuildConfiguration) /p:PortableBuild=$(PB_PortableBuild) /p:OSGroup=OSX", "workingFolder": "$(PB_SourcesDirectory)", "failOnStandardError": "false" } @@ -193,6 +193,9 @@ "PB_AzureAccountName": { "value": "sourcebuild" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_AzureAccessToken": { "value": null, "isSecret": true @@ -200,6 +203,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_ChecksumAzureAccessToken": { "value": null, "isSecret": true diff --git a/buildpipeline/Core-Setup-Publish.json b/buildpipeline/Core-Setup-Publish.json index bedc27a2..94c9eb85 100644 --- a/buildpipeline/Core-Setup-Publish.json +++ b/buildpipeline/Core-Setup-Publish.json @@ -232,7 +232,7 @@ "solution": "$(PB_SourcesDirectory)\\publish\\publish.proj", "platform": "$(PB_TargetArchitecture)", "configuration": "$(BuildConfiguration)", - "msbuildArguments": "/p:Configuration=$(BuildConfiguration) $(PB_CommonMSBuildArgs) /p:SignType=$(PB_SignType) /p:NuGetFeedUrl=$(NUGET_FEED_URL) /p:NuGetSymbolsFeedUrl=$(NUGET_SYMBOLS_FEED_URL) /p:NuGetApiKey=$(NUGET_API_KEY) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:GitHubUser=$(PB_GitHubUser) /p:GitHubEmail=$(PB_GitHubEmail) /p:GitHubAuthToken=$(GITHUB_PASSWORD) /p:VersionsRepoOwner=$(PB_VersionsRepoOwner) /p:VersionsRepo=$(PB_VersionsRepo) /p:VersionsRepoPath=build-info/dotnet/$(PB_RepoName)/$(SourceBranch) /p:Finalize=true /p:DotNetToolDir=$(DotNetToolDir) /p:EmbedIndexToolDir=$(EmbedIndexToolDir) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log", + "msbuildArguments": "/p:Configuration=$(BuildConfiguration) $(PB_CommonMSBuildArgs) /p:SignType=$(PB_SignType) /p:NuGetFeedUrl=$(NUGET_FEED_URL) /p:NuGetSymbolsFeedUrl=$(NUGET_SYMBOLS_FEED_URL) /p:NuGetApiKey=$(NUGET_API_KEY) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /p:GitHubUser=$(PB_GitHubUser) /p:GitHubEmail=$(PB_GitHubEmail) /p:GitHubAuthToken=$(GITHUB_PASSWORD) /p:VersionsRepoOwner=$(PB_VersionsRepoOwner) /p:VersionsRepo=$(PB_VersionsRepo) /p:VersionsRepoPath=build-info/dotnet/$(PB_RepoName)/$(SourceBranch) /p:Finalize=true /p:DotNetToolDir=$(DotNetToolDir) /p:EmbedIndexToolDir=$(EmbedIndexToolDir) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log", "clean": "false", "maximumCpuCount": "false", "restoreNugetPackages": "false", @@ -363,9 +363,6 @@ "value": null, "isSecret": true }, - "PB_DistroRid": { - "value": "win7-x64" - }, "NUGET_SYMBOLS_FEED_URL": { "value": "https:%2F%2Fdotnet.myget.org/F/dotnet-core/symbols/api/v2/package" }, @@ -378,6 +375,9 @@ "PB_AzureAccountName": { "value": "dotnetcli" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_AzureAccessToken": { "value": null, "isSecret": true @@ -385,6 +385,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_ChecksumAzureAccessToken": { "value": null, "isSecret": true @@ -400,7 +403,7 @@ "value": "HEAD" }, "PB_CommonMSBuildArgs": { - "value": "/p:DistroRid=$(PB_DistroRid) /p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture)" + "value": "/p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture)" }, "OfficialBuildId": { "value": "$(Build.BuildNumber)" diff --git a/buildpipeline/Core-Setup-Windows-Arm-BT.json b/buildpipeline/Core-Setup-Windows-Arm-BT.json index dc0a4f91..6437f8cb 100644 --- a/buildpipeline/Core-Setup-Windows-Arm-BT.json +++ b/buildpipeline/Core-Setup-Windows-Arm-BT.json @@ -291,7 +291,7 @@ "msbuildLocation": "", "platform": "$(PB_TargetArchitecture)", "configuration": "$(BuildConfiguration)", - "msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken)", + "msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken)", "clean": "false", "maximumCpuCount": "false", "restoreNugetPackages": "false", @@ -445,10 +445,6 @@ "CertificateId": { "value": "400" }, - "PB_DistroRid": { - "value": "win-$(PB_TargetArchitecture)", - "allowOverride": true - }, "MsbuildSigningArguments": { "value": "/p:CertificateId=$(CertificateId) /v:detailed /p:SignType=$(PB_SignType)" }, @@ -468,6 +464,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_ChecksumAzureAccessToken": { "value": null, "isSecret": true @@ -478,6 +477,9 @@ "PB_AzureAccountName": { "value": "sourcebuild" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_AzureAccessToken": { "value": null, "isSecret": true @@ -501,7 +503,7 @@ "allowOverride": true }, "PB_CommonMSBuildArgs": { - "value": "/p:DistroRid=$(PB_DistroRid) /p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=$(PB_PortableBuild) /p:DisableCrossgen=true $(PB_AdditionalBuildArguments)" + "value": "/p:ConfigurationGroup=$(BuildConfiguration) /p:TargetArchitecture=$(PB_TargetArchitecture) /p:PortableBuild=$(PB_PortableBuild) /p:DisableCrossgen=true $(PB_AdditionalBuildArguments)" }, "PB_AdditionalBuildArguments": { "value": "" diff --git a/buildpipeline/Core-Setup-Windows-BT.json b/buildpipeline/Core-Setup-Windows-BT.json index dc50ac94..98cb1fd1 100644 --- a/buildpipeline/Core-Setup-Windows-BT.json +++ b/buildpipeline/Core-Setup-Windows-BT.json @@ -480,7 +480,7 @@ "msbuildLocation": "", "platform": "$(PB_TargetArchitecture)", "configuration": "$(BuildConfiguration)", - "msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:PublishRidAgnosticPackages=$(PB_PublishRidAgnosticPackages) /p:BuildFullPlatformManifest=$(PB_BuildFullPlatformManifest) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log", + "msbuildArguments": "$(PB_CommonMSBuildArgs) /p:AzureAccountName=$(PB_AzureAccountName) /p:ContainerName=$(PB_ContainerName) /p:AzureAccessToken=$(PB_AzureAccessToken) /p:PublishRidAgnosticPackages=$(PB_PublishRidAgnosticPackages) /p:BuildFullPlatformManifest=$(PB_BuildFullPlatformManifest) /p:ChecksumAzureAccountName=$(PB_ChecksumAzureAccountName) p:ChecksumContainerName=$(PB_ChecksumContainerName) /p:ChecksumAzureAccessToken=$(PB_ChecksumAzureAccessToken) /flp:v=detailed;LogFile=$(PB_SourcesDirectory)\\publish.log", "clean": "false", "maximumCpuCount": "false", "restoreNugetPackages": "false", @@ -644,6 +644,9 @@ "PB_AzureAccountName": { "value": "sourcebuild" }, + "PB_ContainerName": { + "value": "dotnet" + }, "PB_Branch": { "value": "master", "allowOverride": true @@ -658,6 +661,9 @@ "PB_ChecksumAzureAccountName": { "value": "dotnetclichecksums" }, + "PB_ChecksumContainerName": { + "value": "dotnet" + }, "PB_CleanAgent": { "value": "true" }, @@ -761,7 +767,6 @@ "clean": "false", "checkoutSubmodules": false }, - "processParameters": {}, "quality": "definition", "queue": { "id": 36, diff --git a/buildpipeline/pipeline.json b/buildpipeline/pipeline.json index 07db339c..848f4495 100644 --- a/buildpipeline/pipeline.json +++ b/buildpipeline/pipeline.json @@ -18,7 +18,6 @@ { "Name": "Core-Setup-Linux-BT", "Parameters": { - "PB_DistroRid": "rhel.7.2-x64", "PB_DockerTag": "rhel7_prereqs_2", "PB_AdditionalBuildArguments":"-PortableBuild=true -strip-symbols", "PB_PortableBuild": "true" @@ -33,10 +32,10 @@ { "Name": "Core-Setup-Linux-Arm-BT", "Parameters": { - "PB_DistroRid": "rhel.6-x64", "PB_DockerTag": "centos-6-c8c9b08-20174310104313", "PB_TargetArchitecture": "x64", - "PB_AdditionalBuildArguments":"-TargetArchitecture=x64 -DistroRid=rhel.6-x64 -PortableBuild=false -strip-symbols", + "PB_AdditionalBuildArguments":"-TargetArchitecture=x64 -PortableBuild=false -strip-symbols", + "PB_AdditionalMSBuildArguments":"/p:OutputRid=rhel.6-x64", "PB_PortableBuild": "false" }, "ReportingParameters": { @@ -48,10 +47,9 @@ { "Name": "Core-Setup-Linux-Arm-BT", "Parameters": { - "PB_DistroRid": "ubuntu.14.04-arm", "PB_DockerTag": "ubuntu-14.04-cross-0cd4667-20172211042239", "PB_TargetArchitecture": "arm", - "PB_AdditionalBuildArguments":"-TargetArchitecture=arm -DistroRid=linux-arm -DisableCrossgen=true -PortableBuild=true -SkipTests=true -CrossBuild=true -strip-symbols", + "PB_AdditionalBuildArguments":"-TargetArchitecture=arm -DisableCrossgen=true -PortableBuild=true -SkipTests=true -CrossBuild=true -strip-symbols", "PB_CrossBuildArgs": "-e ROOTFS_DIR ", "PB_PortableBuild": "true" }, @@ -108,7 +106,6 @@ { "Name": "Core-Setup-Windows-BT", "Parameters": { - "PB_DistroRid": "win7-x64", "PB_TargetArchitecture": "x64", "PB_PortableBuild": "true", "PB_PublishRidAgnosticPackages": "true", @@ -124,7 +121,6 @@ { "Name": "Core-Setup-Windows-BT", "Parameters": { - "PB_DistroRid": "win7-x86", "PB_TargetArchitecture": "x86", "PB_PortableBuild": "true" }, diff --git a/config.json b/config.json index 2a113767..f20b4d59 100644 --- a/config.json +++ b/config.json @@ -30,12 +30,6 @@ "values": [ "True", "False"], "defaultValue": "False" }, - "DistroRid": { - "description": "Specifies the distro rid for Unix OS.", - "valueType": "property", - "values": [], - "defaultValue": "${OSRid}-${CPUArch}" - }, "TargetArchitecture":{ "description": "Build for the specified architecture (x64, x86 (supported only on Windows), arm, or arm64, default: x64)", "valueType": "property", @@ -270,7 +264,6 @@ "TargetArchitecture": "default", "OSGroup": "default", "MsBuildLogging":"default", - "DistroRid":"default", "Project":"build.proj" } } diff --git a/dependencies.props b/dependencies.props index a9506aa5..51c9a4ee 100644 --- a/dependencies.props +++ b/dependencies.props @@ -35,6 +35,16 @@ $(MSBuildThisFileFullPath) + + + 15.1.1012 + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildPackageVersion) + $(MicrosoftBuildPackageVersion) + + 1.1.1 + + $(BaseDotNetBuildInfo)corefx/$(DependencyBranch) diff --git a/dir.props b/dir.props index c6a5dc23..36b18cd9 100644 --- a/dir.props +++ b/dir.props @@ -38,10 +38,23 @@ $(OS) + + + + $(OverridePackageSource); + https://dotnet.myget.org/F/dotnet-core/api/v3/index.json; + https://dotnet.myget.org/F/cli-deps/api/v3/index.json; + https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json; + https://www.myget.org/F/nugetbuild/api/v3/index.json; + https://api.nuget.org/v3/index.json; + https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json; + + + - + $(PreReleaseLabel)- $(VersionSuffix)$(BuildNumberMajor)-$(BuildNumberMinor) @@ -60,11 +73,11 @@ @@ -75,20 +88,20 @@ false $(ProductVersion) 2.0.0 - - false $(ProductVersion) 2.0.0 - false $(ProductVersion) @@ -98,18 +111,6 @@ Runtime/$(SharedFrameworkNugetVersion) - - - - - - - - - - - - @@ -119,6 +120,8 @@ DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 $(DotnetRestorePrefix)$(DotnetRestoreCommand) + + $(DotnetRestorePrefix)"$(DotnetToolCommand)" restore $(DotnetRestoreSource) @@ -130,7 +133,7 @@ x64 $(TargetArchitecture) - - win-$(TargetArchitecture) - osx-$(TargetArchitecture) - linux-$(TargetArchitecture) + win-$(TargetArchitecture) + osx-$(TargetArchitecture) + linux-$(TargetArchitecture) - win10-$(TargetArchitecture) - $(TargetRid) + $(OutputRid) - $(TargetRid).$(ConfigurationGroup) + $(OutputRid).$(ConfigurationGroup) $(BinDir) $(BaseOutputPath)$(OSPlatformConfig)\ @@ -251,12 +248,11 @@ $(IntermediateOutputRootPath)sharedFrameworkPublish\ $(IntermediateOutputRootPath)sharedFrameworkPublish.symbols\ - $(SharedFrameworkPublishDir)shared\$(SharedFrameworkName)\$(SharedFrameworkNugetVersion) false - $(BaseOutputRootPath)sharedfx_$(TargetRid)_$(ConfigurationGroup)_version_badge.svg + $(BaseOutputRootPath)sharedfx_$(OutputRid)_$(ConfigurationGroup)_version_badge.svg @@ -294,39 +290,39 @@ false - + true - + true true - + true true true - + true true true - + true true true - + true true @@ -349,18 +345,18 @@ .deb .rpm .exe - $(InstallerExtension) + $(InstallerExtension) - - $(TargetRid) - osx.10.10-x64 - rhel.7-x64 - rhel.7-x64 - rhel.7-x64 - rhel.7-x64 - rhel.7-x64 + + $(OutputRid) + osx.10.10-x64 + rhel.7-x64 + rhel.7-x64 + rhel.7-x64 + rhel.7-x64 + rhel.7-x64 $(SharedFrameworkNugetVersion)-$(PackageTargetRid) $(HostResolverVersion)-$(PackageTargetRid) @@ -372,7 +368,7 @@ $(HostFxrInstallerStart)$(HostResolverVersionMoniker)$(InstallerExtension) $(SharedFrameworkInstallerStart)$(ProductMoniker)$(InstallerExtension) - + dotnet-host $(SharedHostDebPkgName.ToLower()) @@ -419,6 +415,11 @@ /p:OSGroup=$(OSGroup) /p:DistroRid=$(DistroRid) /p:PortableBuild=$(PortableBuild) /p:TargetArchitecture=$(TargetArchitecture) /p:ConfigurationGroup=$(ConfigurationGroup) + + + --no-restore + + diff --git a/init-tools.cmd b/init-tools.cmd index 40fca031..7f31e164 100644 --- a/init-tools.cmd +++ b/init-tools.cmd @@ -12,9 +12,6 @@ set BUILD_TOOLS_PATH=%PACKAGES_DIR%Microsoft.DotNet.BuildTools\%BUILDTOOLS_VERSI set INIT_TOOLS_RESTORE_PROJECT=%~dp0init-tools.msbuild set BUILD_TOOLS_SEMAPHORE=%TOOLRUNTIME_DIR%\%BUILDTOOLS_VERSION%\init-tools.completed -:: We do not want to run the first-time experience. -set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - :: if force option is specified then clean the tool runtime and build tools package directory to force it to get recreated if [%1]==[force] ( if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%" @@ -29,10 +26,24 @@ if exist "%BUILD_TOOLS_SEMAPHORE%" ( if exist "%TOOLRUNTIME_DIR%" rmdir /S /Q "%TOOLRUNTIME_DIR%" +if exist "%DotNetBuildToolsDir%" ( + echo Using tools from '%DotNetBuildToolsDir%'. + mklink /j "%TOOLRUNTIME_DIR%" "%DotNetBuildToolsDir%" + + if not exist "%DOTNET_CMD%" ( + echo ERROR: Ensure that '%DotNetBuildToolsDir%' contains the .NET Core SDK at '%DOTNET_PATH%' + exit /b 1 + ) + + echo Done initializing tools. + echo Using tools from '%DotNetBuildToolsDir%'. > "%BUILD_TOOLS_SEMAPHORE%" + exit /b 0 +) + echo Running %0 > "%INIT_TOOLS_LOG%" set /p DOTNET_VERSION=< "%~dp0DotnetCLIVersion.txt" -if exist "%DOTNET_CMD%" goto :afterdotnetinstall +if exist "%DOTNET_CMD%" goto :afterdotnetrestore echo Installing dotnet cli... if NOT exist "%DOTNET_PATH%" mkdir "%DOTNET_PATH%" @@ -46,7 +57,7 @@ if NOT exist "%DOTNET_LOCAL_PATH%" ( exit /b 1 ) -:afterdotnetinstall +:afterdotnetrestore if exist "%BUILD_TOOLS_PATH%" goto :afterbuildtoolsrestore echo Restoring BuildTools version %BUILDTOOLS_VERSION%... diff --git a/init-tools.sh b/init-tools.sh index d6a60130..3c1a0a73 100755 --- a/init-tools.sh +++ b/init-tools.sh @@ -12,126 +12,116 @@ __BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt) __DOTNET_TOOLS_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt) __BUILD_TOOLS_PATH=$__PACKAGES_DIR/microsoft.dotnet.buildtools/$__BUILD_TOOLS_PACKAGE_VERSION/lib __INIT_TOOLS_RESTORE_PROJECT=$__scriptpath/init-tools.msbuild -__INIT_TOOLS_DONE_MARKER_DIR=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION -__INIT_TOOLS_DONE_MARKER=$__INIT_TOOLS_DONE_MARKER_DIR/done +__BUILD_TOOLS_SEMAPHORE=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/init-tools.complete -# We do not want to run the first-time experience. -export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - -if [ -z "$__DOTNET_PKG" ]; then - if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then - echo "Warning: build not supported on 32 bit Unix" - fi -OSName=$(uname -s) - case $OSName in - Darwin) - OS=OSX - __DOTNET_PKG=dotnet-dev-osx-x64 - ulimit -n 2048 - ;; - - Linux) - __DOTNET_PKG=dotnet-dev-linux-x64 - OS=Linux - - if [ -e /etc/os-release ]; then - source /etc/os-release - if [[ $ID == "alpine" ]]; then - # remove the last version digit - VERSION_ID=${VERSION_ID%.*} - __DOTNET_PKG=dotnet-dev-alpine.$VERSION_ID-x64 - fi - elif [ -e /etc/redhat-release ]; then - redhatRelease=$( $__init_tools_log +if [ -d "$DotNetBuildToolsDir" ]; then + echo "Using tools from '$DotNetBuildToolsDir'." + ln -s "$DotNetBuildToolsDir" "$__TOOLRUNTIME_DIR" - if [ ! -e $__DOTNET_PATH ]; then - - mkdir -p "$__DOTNET_PATH" - - if [ -n "$DOTNET_TOOLSET_DIR" ] && [ -d "$DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION" ]; then - echo "Copying $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION to $__DOTNET_PATH" >> $__init_tools_log - cp -r $DOTNET_TOOLSET_DIR/$__DOTNET_TOOLS_VERSION/* $__DOTNET_PATH - elif [ -n "$DOTNET_TOOL_DIR" ] && [ -d "$DOTNET_TOOL_DIR" ]; then - echo "Copying $DOTNET_TOOL_DIR to $__DOTNET_PATH" >> $__init_tools_log - cp -r $DOTNET_TOOL_DIR/* $__DOTNET_PATH - else - echo "Installing dotnet cli..." - __DOTNET_LOCATION="https://dotnetcli.azureedge.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz" - # curl has HTTPS CA trust-issues less often than wget, so lets try that first. - echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log - which curl > /dev/null 2> /dev/null - if [ $? -ne 0 ]; then - wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} - else - curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} - fi - cd $__DOTNET_PATH - tar -xf $__DOTNET_PATH/dotnet.tar - - cd $__scriptpath - - __PATCH_CLI_NUGET_FRAMEWORKS=1 - fi + if [ ! -e "$__DOTNET_CMD" ]; then + echo "ERROR: Ensure that $DotNetBuildToolsDir contains the .NET Core SDK at $__DOTNET_PATH" + exit 1 fi - - if [ -n "$BUILD_TOOLS_TOOLSET_DIR" ] && [ -d "$BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION" ]; then - echo "Copying $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION to $__TOOLRUNTIME_DIR" >> $__init_tools_log - cp -r $BUILD_TOOLS_TOOLSET_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/* $__TOOLRUNTIME_DIR - elif [ -n "$BUILD_TOOLS_TOOL_DIR" ] && [ -d "$BUILD_TOOLS_TOOL_DIR" ]; then - echo "Copying $BUILD_TOOLS_TOOL_DIR to $__TOOLRUNTIME_DIR" >> $__init_tools_log - cp -r $BUILD_TOOLS_TOOL_DIR/* $__TOOLRUNTIME_DIR - else - if [ ! -e $__BUILD_TOOLS_PATH ]; then - echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..." - echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log - $__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log - if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then echo "ERROR: Could not restore build tools correctly. See '$__init_tools_log' for more details."1>&2; fi - fi - - echo "Initializing BuildTools..." - echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log - - # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 - chmod +x $__BUILD_TOOLS_PATH/init-tools.sh - $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log - if [ "$?" != "0" ]; then - echo "ERROR: An error occured when trying to initialize the tools. Please check '$__init_tools_log' for more details."1>&2 - exit 1 - fi - fi - - echo "Making all .sh files executable under Tools." - # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 - ls $__scriptpath/Tools/*.sh | xargs chmod +x - ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x - - Tools/crossgen.sh $__scriptpath/Tools - - mkdir -p $__INIT_TOOLS_DONE_MARKER_DIR - touch $__INIT_TOOLS_DONE_MARKER - echo "Done initializing tools." -else - echo "Tools are already initialized" + mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE + exit 0 fi + +echo "Running: $__scriptpath/init-tools.sh" > $__init_tools_log + +if [ ! -e $__DOTNET_PATH ]; then + if [ -z "$__DOTNET_PKG" ]; then + if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then + echo "Warning: build not supported on 32 bit Unix" + fi + OSName=$(uname -s) + case $OSName in + Darwin) + OS=OSX + __DOTNET_PKG=dotnet-dev-osx-x64 + ulimit -n 2048 + ;; + + Linux) + __DOTNET_PKG=dotnet-dev-linux-x64 + OS=Linux + + if [ -e /etc/os-release ]; then + source /etc/os-release + if [[ $ID == "alpine" ]]; then + # remove the last version digit + VERSION_ID=${VERSION_ID%.*} + __DOTNET_PKG=dotnet-dev-alpine.$VERSION_ID-x64 + fi + elif [ -e /etc/redhat-release ]; then + redhatRelease=$(> $__init_tools_log + which curl > /dev/null 2> /dev/null + if [ $? -ne 0 ]; then + wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} + else + curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} + fi + cd $__DOTNET_PATH + tar -xf $__DOTNET_PATH/dotnet.tar + + cd $__scriptpath +fi + +if [ ! -e $__BUILD_TOOLS_PATH ]; then + echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..." + echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log + $__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log + if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then echo "ERROR: Could not restore build tools correctly. See '$__init_tools_log' for more details."1>&2; fi +fi + +echo "Initializing BuildTools..." +echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log + +# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 +chmod +x $__BUILD_TOOLS_PATH/init-tools.sh +$__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log +if [ "$?" != "0" ]; then + echo "ERROR: An error occured when trying to initialize the tools. Please check '$__init_tools_log' for more details."1>&2 + exit 1 +fi + +echo "Making all .sh files executable under Tools." +# Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 +ls $__scriptpath/Tools/*.sh | xargs chmod +x +ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x + +Tools/crossgen.sh $__scriptpath/Tools + +mkdir -p "$(dirname "$__BUILD_TOOLS_SEMAPHORE")" && touch $__BUILD_TOOLS_SEMAPHORE + +echo "Done initializing tools." + diff --git a/netci.groovy b/netci.groovy index 2f47d3dd..d642b519 100644 --- a/netci.groovy +++ b/netci.groovy @@ -48,7 +48,7 @@ platformList.each { platform -> dockerContainer = "ubuntu1404_cross_prereqs_v4-tizen_rootfs" dockerCommand = "docker run -e ROOTFS_DIR=/crossrootfs/${architecture}.tizen.build --name ${dockerContainer} --rm -v \${WORKSPACE}:${dockerWorkingDirectory} -w=${dockerWorkingDirectory} ${dockerRepository}:${dockerContainer}" - buildArgs += " -DistroRid=tizen.4.0.0-${architecture} -SkipTests=true -DisableCrossgen=true -PortableBuild=false -CrossBuild=true -- /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json" + buildArgs += " -SkipTests=true -DisableCrossgen=true -PortableBuild=false -CrossBuild=true -- /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.4.0.0-${architecture}" buildCommand = "${dockerCommand} ./build.sh ${buildArgs}" } else if (os == "Linux") { @@ -57,7 +57,7 @@ platformList.each { platform -> if (architecture == 'arm' || architecture == 'armel') { dockerContainer = "ubuntu-14.04-cross-0cd4667-20172211042239" dockerCommand = "docker run -e ROOTFS_DIR=/crossrootfs/${architecture} --name ${dockerContainer} --rm -v \${WORKSPACE}:${dockerWorkingDirectory} -w=${dockerWorkingDirectory} ${dockerRepository}:${dockerContainer}" - buildArgs += " -DistroRid=linux-${architecture} -SkipTests=true -DisableCrossgen=true -CrossBuild=true" + buildArgs += " -SkipTests=true -DisableCrossgen=true -CrossBuild=true" buildCommand = "${dockerCommand} ./build.sh ${buildArgs}" osForGHTrigger = "Linux" diff --git a/publish/dir.props b/publish/dir.props index 562b4161..2afbc8f0 100644 --- a/publish/dir.props +++ b/publish/dir.props @@ -9,11 +9,6 @@ Runtime/$(ProductVersion) .sha512 - - - $(DistroRid).$(SharedFrameworkNugetVersion) - $(DistroRid).$(HostResolverVersion) - + + + @@ -30,7 +40,7 @@ Properties="%(Project.AdditionalProperties)" BuildInParallel="true" /> - + @@ -86,8 +96,13 @@ - + DependsOnTargets="GenerateDebRepoFiles" + Condition="'$(DebRepoId)' != '' AND + '$(DebRepoUser)' != '' AND + '$(DebRepoPass)' != '' AND + '$(DebRepoServer)' != ''"> + + Condition="'@(_MissingBlobNames)' == '' AND '$(NuGetFeedUrl)' != ''"> @@ -227,8 +242,7 @@ - + Condition="'$(PublishDebToolToFeed)' == 'true' AND '$(CliNuGetFeedUrl)' != ''"> diff --git a/run.cmd b/run.cmd index 4c1465dc..eb193fba 100644 --- a/run.cmd +++ b/run.cmd @@ -17,8 +17,5 @@ if not exist "%_VSCOMNTOOLS%" ( call "%_VSCOMNTOOLS%\VsDevCmd.bat" :Run -:: We do not want to run the first-time experience. -set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 -pushd %~dp0 powershell -NoProfile -ExecutionPolicy unrestricted -Command "%~dp0run.ps1 -- %*" exit /b %ERRORLEVEL% \ No newline at end of file diff --git a/run.ps1 b/run.ps1 index 5363d4ff..1a260830 100644 --- a/run.ps1 +++ b/run.ps1 @@ -2,6 +2,9 @@ $toolsLocalPath = Join-Path $PSScriptRoot "Tools" $restorePackagesPath = Join-Path $PSScriptRoot "packages" +# We do not want to run the first-time experience. +$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1 + $initTools = Join-Path $PSScriptRoot "init-tools.cmd" & $initTools diff --git a/run.sh b/run.sh index 9b68d2d5..56e18f21 100755 --- a/run.sh +++ b/run.sh @@ -11,11 +11,12 @@ invocation='echo "Calling: ${FUNCNAME[0]}"' __scriptpath=$(cd "$(dirname "$0")"; pwd -P) __toolsLocalPath=$__scriptpath/Tools +# We do not want to run the first-time experience. +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + $__scriptpath/init-tools.sh __dotnet=$__toolsLocalPath/dotnetcli/dotnet -# We do not want to run the first-time experience. -export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 $__dotnet $__toolsLocalPath/run.exe $* exit $? diff --git a/signing/sign.proj b/signing/sign.proj index 3f34ba6a..925ae26e 100644 --- a/signing/sign.proj +++ b/signing/sign.proj @@ -11,7 +11,7 @@ - + @@ -153,7 +157,7 @@ - + @@ -191,7 +195,7 @@ OverwriteReadOnlyFiles="True" SkipUnchangedFiles="False" UseHardlinksIfPossible="False" /> - + @@ -217,11 +221,11 @@ - - - - + + + + @@ -233,10 +237,10 @@ - + - + @@ -255,9 +259,9 @@ $(SharedFrameworkBrandName) - - $(LibIcuPackageName) - + + $(LibIcuPackageName) + diff --git a/src/pkg/packaging/dir.proj b/src/pkg/packaging/dir.proj index 8e6d2cf6..4b789743 100644 --- a/src/pkg/packaging/dir.proj +++ b/src/pkg/packaging/dir.proj @@ -2,7 +2,7 @@ - + GenerateVersionBadge; @@ -26,7 +26,7 @@ - - + Command='find %(OutDirs.Identity) -type f -name "*" -exec chmod 644 {} \;' /> + + Command='find %(OutDirs.Identity) -type f -name "*.so" -exec chmod 755 {} \;' /> - - + Command='find %(OutDirs.Identity) -type f ! -name "*.*" -exec chmod 755 {} \;' /> + + - + - + - + @@ -129,10 +129,10 @@ - - - + @@ -165,17 +165,24 @@ + + + + + + - --no-build --output $(PackagesOutDir) + $(NoRestoreArg) --no-build --output $(PackagesOutDir) $(PackArgs) $(MSBuildPassThroughPropertyList) /p:BaseOutputPath=$(IntermediateOutputForPackaging) - + - + diff --git a/src/pkg/projects/Microsoft.NETCore.App/src/Microsoft.NETCore.App.depproj b/src/pkg/projects/Microsoft.NETCore.App/src/Microsoft.NETCore.App.depproj index d3ec6833..f70af0ee 100644 --- a/src/pkg/projects/Microsoft.NETCore.App/src/Microsoft.NETCore.App.depproj +++ b/src/pkg/projects/Microsoft.NETCore.App/src/Microsoft.NETCore.App.depproj @@ -4,7 +4,7 @@ unused - unused .NETCoreApp,Version=v2.1 @@ -40,7 +40,7 @@ - @@ -68,11 +68,11 @@ <_runtimePackageId>%(_runtimeCLR.NuGetPackageId) <_runtimePackageVersion>%(_runtimeCLR.NuGetPackageVersion) <_runtimePackagePath>$(PackagesDir)/$(_runtimePackageId.ToLowerInvariant())/$(_runtimePackageVersion) - + <_crossGenPath>$(_runtimePackagePath)/tools$(_crossDir)/crossgen$(ApplicationFileExtension) <_runtimeDirectory>%(_runtimeCLR.RootDir)%(_runtimeCLR.Directory) - + <_coreLibDirectory>%(_runtimeCoreLib.RootDir)%(_runtimeCoreLib.Directory) @@ -84,7 +84,7 @@ <_jitPath>%(_runtimeJIT.FullPath) <_jitPath Condition="'$(_crossDir)' != ''">$(_jitPackagePath)/runtimes$(_crossDir)/native/$(LibraryFilePrefix)clrjit$(LibraryFileExtension) - + <_fxLibDirectory>%(_fxSystemRuntime.RootDir)%(_fxSystemRuntime.Directory) @@ -100,7 +100,7 @@ - $(PackagesDir)$([System.String]::new('%(Reference.NuGetPackageId)').ToLowerInvariant())/%(Reference.NuGetPackageVersion)/version.txt @@ -135,7 +135,7 @@ - true @@ -157,13 +157,13 @@ <_docFilesToPackage Include="%(FilesToPackage.RootDir)%(FilesToPackage.Directory)**\%(FilesToPackage.FileName).xml" /> - + ref/$(PackageTargetFramework)/%(RecursiveDir) - + <_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\sources')" /> <_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\src')" /> @@ -215,7 +215,7 @@ - + <_crossGenedFilesToPackage Include="@(_filesToCrossGen->'%(CrossGenedPath)')" /> @@ -228,7 +228,7 @@ <_crossgenPlatformDirectories Include="%(_filesToCrossGen.RootDir)%(_filesToCrossGen.Directory)" /> - + @@ -261,7 +261,7 @@ - + CreatePerfMap <_crossGenSymbolsOutputDirectory>$(CrossGenSymbolsOutputPath)/%(_filesToCrossGen.TargetPath) - + <_crossGenSymbolsArgs Include="-readytorun" /> <_crossGenSymbolsArgs Include="-platform_assemblies_paths %(_filesToCrossGen.CrossGenedDirectory)$(_pathSeparatorEscaped)$(_coreLibDirectory)" /> @@ -283,9 +283,9 @@ - + - + @@ -305,7 +305,7 @@ - + @@ -320,10 +320,10 @@ - + - + diff --git a/src/pkg/projects/Microsoft.NETCore.UniversalWindowsPlatform/src/Microsoft.NETCore.UniversalWindowsPlatform.depproj b/src/pkg/projects/Microsoft.NETCore.UniversalWindowsPlatform/src/Microsoft.NETCore.UniversalWindowsPlatform.depproj index 1c15ed10..e90b3467 100644 --- a/src/pkg/projects/Microsoft.NETCore.UniversalWindowsPlatform/src/Microsoft.NETCore.UniversalWindowsPlatform.depproj +++ b/src/pkg/projects/Microsoft.NETCore.UniversalWindowsPlatform/src/Microsoft.NETCore.UniversalWindowsPlatform.depproj @@ -4,7 +4,7 @@ unused - unused $(UAPvNextTFMFull) @@ -50,7 +50,7 @@ - @@ -65,7 +65,7 @@ <_FilesToPackage Include="@(ReferenceCopyLocalPaths)"> - true @@ -107,13 +107,13 @@ <_docFilesToPackage Include="%(FilesToPackage.RootDir)%(FilesToPackage.Directory)**\%(FilesToPackage.FileName).xml" /> - + ref/$(PackageTargetFramework)/%(RecursiveDir) - @@ -128,7 +128,7 @@ - + <_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\sources')" /> <_sourcePathCandidate Include="@(FilesToPackage->'$(PackagesDir)\%(NuGetPackageId)\%(NuGetPackageVersion)\src')" /> @@ -166,10 +166,10 @@ - + - + diff --git a/src/pkg/projects/dir.props b/src/pkg/projects/dir.props index 139a6cb6..9b49bdb8 100644 --- a/src/pkg/projects/dir.props +++ b/src/pkg/projects/dir.props @@ -13,6 +13,9 @@ $(NuGetRuntimeIdentifier) true + + false + true diff --git a/src/pkg/projects/dir.targets b/src/pkg/projects/dir.targets index dff3214c..8f1eb7a4 100644 --- a/src/pkg/projects/dir.targets +++ b/src/pkg/projects/dir.targets @@ -6,6 +6,14 @@ true + + + $(Version) + + @@ -37,7 +45,7 @@ - runtimes/$(PackageTargetRuntime)/native true @@ -60,7 +68,7 @@ DestinationFolder="%(_SymbolsFiles.DestinationFolder)" /> - @@ -75,7 +83,7 @@ @@ -109,5 +117,5 @@ ItemName="Dependency" /> - - + + \ No newline at end of file diff --git a/src/pkg/projects/netcoreappRIDs.props b/src/pkg/projects/netcoreappRIDs.props index efc59265..404bffd4 100644 --- a/src/pkg/projects/netcoreappRIDs.props +++ b/src/pkg/projects/netcoreappRIDs.props @@ -1,18 +1,8 @@ - - - $(DistroRid) - osx.10.12-$(Platform) - win7-$(Platform) - win8-$(Platform) - win10-$(Platform) - - - win-$(Platform) - osx-$(Platform) - linux-$(Platform) + + $(OutputRid) diff --git a/src/sharedFramework/lockedhost/lockedhost.csproj b/src/sharedFramework/lockedhost/lockedhost.csproj index 94e79734..38785134 100644 --- a/src/sharedFramework/lockedhost/lockedhost.csproj +++ b/src/sharedFramework/lockedhost/lockedhost.csproj @@ -3,6 +3,8 @@ false true + false + false 2008;8021 diff --git a/src/sharedFramework/sharedFramework.proj b/src/sharedFramework/sharedFramework.proj index 629659de..6fcf09ac 100644 --- a/src/sharedFramework/sharedFramework.proj +++ b/src/sharedFramework/sharedFramework.proj @@ -18,6 +18,9 @@ $(MSBuildPassThroughPropertyList) /p:TargetFramework=$(Framework) /p:RuntimeIdentifier=$(PackageTargetRid) + + $(IntermediateOutputRootPath)sharedFrameworkPublish.packages\ + $(SharedFrameworkPublishDir)shared\$(SharedFrameworkName)\$(SharedFrameworkNugetVersion) @@ -32,13 +35,15 @@ - + - + @@ -142,13 +147,14 @@ - + - - + \ No newline at end of file diff --git a/src/test/HostActivationTests/GivenThatICareAboutMultilevelSDKLookup.cs b/src/test/HostActivationTests/GivenThatICareAboutMultilevelSDKLookup.cs index 7be639ff..2b690c47 100644 --- a/src/test/HostActivationTests/GivenThatICareAboutMultilevelSDKLookup.cs +++ b/src/test/HostActivationTests/GivenThatICareAboutMultilevelSDKLookup.cs @@ -98,7 +98,7 @@ namespace Microsoft.DotNet.CoreSetup.Test.HostActivation.MultilevelSDKLookup _userSelectedMessage = $"Using dotnet SDK dll=[{_userSdkBaseDir}"; _exeSelectedMessage = $"Using dotnet SDK dll=[{_exeSdkBaseDir}"; } - + [Fact] public void SdkLookup_Global_Json_Patch_Rollup() { @@ -349,7 +349,7 @@ namespace Microsoft.DotNet.CoreSetup.Test.HostActivation.MultilevelSDKLookup .And .HaveStdErrContaining(Path.Combine(_exeSelectedMessage, "10000.0.0-dummy", _dotnetSdkDllMessageTerminator)); - // Add a dummy version in the exe dir + // Add a dummy version in the user dir AddAvailableSdkVersions(_exeSdkBaseDir, "10000.0.0"); // Specified CLI version: none diff --git a/src/test/dir.proj b/src/test/dir.proj index 72f828b9..b8226c3b 100644 --- a/src/test/dir.proj +++ b/src/test/dir.proj @@ -90,7 +90,7 @@ + + + + + true + + + \ No newline at end of file diff --git a/tools-local/scripts/arm32_ci_script.sh b/tools-local/scripts/arm32_ci_script.sh index 310a1dd5..552c5866 100644 --- a/tools-local/scripts/arm32_ci_script.sh +++ b/tools-local/scripts/arm32_ci_script.sh @@ -213,7 +213,7 @@ function cross_build_core_setup_with_docker { fi # Cross building core-setup with rootfs in Docker - __buildCmd="./build.sh --configuration $__buildConfig --env-vars DISABLE_CROSSGEN=1,TARGETPLATFORM=$__buildArch,TARGETRID=$__runtimeOS-$__buildArch,CROSS=1,ROOTFS_DIR=$__rootfsDir" + __buildCmd="./build.sh --configuration $__buildConfig --env-vars DISABLE_CROSSGEN=1,TARGETPLATFORM=$__buildArch,OUTPUTRID=$__runtimeOS-$__buildArch,CROSS=1,ROOTFS_DIR=$__rootfsDir" $__dockerCmd $__buildCmd } diff --git a/tools-local/scripts/dockerbuild.sh b/tools-local/scripts/dockerbuild.sh new file mode 100644 index 00000000..6f15ca8e --- /dev/null +++ b/tools-local/scripts/dockerbuild.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# +# 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. +# + +set -e + +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + +cd "$DIR/.." + +while [[ $# > 0 ]]; do + key=$1 + + case $key in + -t|--tag) + DOCKER_TAG=$2 + shift + ;; + -d|--dockerfile) + DOCKERFILE=$2 + shift + ;; + -h|-?|--help) + echo "Usage: $0 [-d|--dockerfile ] [-t|--tag ] " + echo "" + echo "Options:" + echo " The path to the folder that contains a Dockerfile to use to create the build container" + echo " The name of docker image tag" + exit 0 + ;; + *) + break # the first non-switch we get ends parsing + ;; + esac + + shift +done + +# Executes a command and retries if it fails. +# NOTE: This function is the exact copy from init-docker.sh. +# Reason for not invoking init.docker.sh directly is since that script +# also performs cleanup, which we do not want in this case. +execute() { + local count=0 + local retries=5 + local waitFactor=6 + until "$@"; do + local exit=$? + count=$(( $count + 1 )) + if [ $count -lt $retries ]; then + local wait=$(( waitFactor ** (( count - 1 )) )) + echo "Retry $count/$retries exited $exit, retrying in $wait seconds..." + sleep $wait + else + say_err "Retry $count/$retries exited $exit, no more retries left." + return $exit + fi + done + + return 0 +} + +# Build the docker container (will be fast if it is already built) +echo "Building Docker Container using Dockerfile: $DOCKERFILE" + +# Get the name of Docker image. +image=$(grep -i "^FROM " "$DOCKERFILE/Dockerfile" | awk '{ print $2 }') + +# Explicitly pull the base image with retry logic. +# This eliminates intermittent failures during docker build caused by failing to retrieve the base image. +if [ ! -z "$image" ]; then + echo "Pulling Docker image $image" + execute docker pull $image +fi + +docker build --build-arg USER_ID=$(id -u) -t $DOCKER_TAG $DOCKERFILE diff --git a/tools-local/scripts/dockerrun.sh b/tools-local/scripts/dockerrun.sh index 80f3d089..4d5a3d85 100644 --- a/tools-local/scripts/dockerrun.sh +++ b/tools-local/scripts/dockerrun.sh @@ -87,44 +87,8 @@ fi # VSO [ ! -z "$BUILD_BUILDID" ] && DOTNET_BUILD_CONTAINER_NAME="${BUILD_BUILDID}-${BUILD_BUILDNUMBER}" -# Executes a command and retries if it fails. -# NOTE: This function is the exact copy from init-docker.sh. -# Reason for not invoking init.docker.sh directly is since that script -# also performs cleanup, which we do not want in this case. -execute() { - local count=0 - local retries=5 - local waitFactor=6 - until "$@"; do - local exit=$? - count=$(( $count + 1 )) - if [ $count -lt $retries ]; then - local wait=$(( waitFactor ** (( count - 1 )) )) - echo "Retry $count/$retries exited $exit, retrying in $wait seconds..." - sleep $wait - else - say_err "Retry $count/$retries exited $exit, no more retries left." - return $exit - fi - done - - return 0 -} - -# Build the docker container (will be fast if it is already built) -echo "Building Docker Container using Dockerfile: $DOCKERFILE" - -# Get the name of Docker image. -image=$(grep -i "^FROM " "$DOCKERFILE/Dockerfile" | awk '{ print $2 }') - -# Explicitly pull the base image with retry logic. -# This eliminates intermittent failures during docker build caused by failing to retrieve the base image. -if [ ! -z "$image" ]; then - echo "Pulling Docker image $image" - execute docker pull $image -fi - -docker build --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE +#Build the docker image +"$DIR/dockerbuild.sh" -t $DOTNET_BUILD_CONTAINER_TAG -d $DOCKERFILE # Run the build in the container echo "Launching build in Docker Container" diff --git a/tools-local/tasks/BuildFPMToolPreReqs .cs b/tools-local/tasks/BuildFPMToolPreReqs .cs new file mode 100644 index 00000000..d04cb8c2 --- /dev/null +++ b/tools-local/tasks/BuildFPMToolPreReqs .cs @@ -0,0 +1,320 @@ +// 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.Collections.Generic; +using Microsoft.Build.Utilities; +using Microsoft.Build.Framework; +using System.IO; +using System.Linq; +using System.Text; +using Newtonsoft.Json; + +namespace Microsoft.DotNet.Build.Tasks +{ + /// + /// This task prepares the command line parameters for running a RPM build using FPM tool and also updates the copyright and changelog file tokens. + /// If parses various values from the config json by first reading it into a model and then builds the required string for parameters and passes it back. + /// + /// + public class BuildFPMToolPreReqs : BuildTask + { + [Required] + public string InputDir { get; set; } + [Required] + public string OutputDir { get; set; } + [Required] + public string PackageVersion { get; set; } + [Required] + public string ConfigJsonFile { get; set; } + [Output] + public string FPMParameters { get; set; } + + public override bool Execute() + { + try + { + if (!File.Exists(ConfigJsonFile)) + { + throw new FileNotFoundException($"Expected file {ConfigJsonFile} was not found."); + } + + // Open the Config Json and read the values into the model + TextReader projectFileReader = File.OpenText(ConfigJsonFile); + if (projectFileReader != null) + { + string jsonFileText = projectFileReader.ReadToEnd(); + ConfigJson configJson = JsonConvert.DeserializeObject(jsonFileText); + + // Update the Changelog and Copyright files by replacing tokens with values from config json + UpdateChangelog(configJson, PackageVersion); + UpdateCopyRight(configJson); + + // Build the full list of parameters + FPMParameters = BuildCmdParameters(configJson, PackageVersion); + Log.LogMessage(MessageImportance.Normal, "Generated RPM paramters: " + FPMParameters); + } + else + { + throw new IOException($"Could not open the file {ConfigJsonFile} for reading."); + } + } + catch (Exception e) + { + Log.LogError("Exception while processing RPM paramters: " + e.Message); + } + + return !Log.HasLoggedErrors; + } + + // Update the tokens in the changelog file from the config Json + private void UpdateChangelog(ConfigJson configJson, string package_version) + { + try + { + string changelogFile = Path.Combine(InputDir, "templates", "changelog"); + if (!File.Exists(changelogFile)) + { + throw new FileNotFoundException($"Expected file {changelogFile} was not found."); + } + string str = File.ReadAllText(changelogFile); + str = str.Replace("{PACKAGE_NAME}", configJson.Package_Name); + str = str.Replace("{PACKAGE_VERSION}", package_version); + str = str.Replace("{PACKAGE_REVISION}", configJson.Release.Package_Revision); + str = str.Replace("{URGENCY}", configJson.Release.Urgency); + str = str.Replace("{CHANGELOG_MESSAGE}", configJson.Release.Changelog_Message); + str = str.Replace("{MAINTAINER_NAME}", configJson.Maintainer_Name); + str = str.Replace("{MAINTAINER_EMAIL}", configJson.Maintainer_Email); + // The date format needs to be like Wed May 17 2017 + str = str.Replace("{DATE}", DateTime.UtcNow.ToString("ddd MMM dd yyyy")); + File.WriteAllText(changelogFile, str); + } + catch (Exception e) + { + Log.LogError("Exception while updating the changelog file: " + e.Message); + } + } + + public void UpdateCopyRight(ConfigJson configJson) + { + try + { + // Update the tokens in the copyright file from the config Json + string copyrightFile = Path.Combine(InputDir, "templates", "copyright"); + if (!File.Exists(copyrightFile)) + { + throw new FileNotFoundException($"Expected file {copyrightFile} was not found."); + } + string str = File.ReadAllText(copyrightFile); + str = str.Replace("{COPYRIGHT_TEXT}", configJson.CopyRight); + str = str.Replace("{LICENSE_NAME}", configJson.License.Type); + str = str.Replace("{LICENSE_NAME}", configJson.License.Type); + str = str.Replace("{LICENSE_TEXT}", configJson.License.Full_Text); + File.WriteAllText(copyrightFile, str); + } + catch (Exception e) + { + Log.LogError("Exception while updating the copyright file: " + e.Message); + } + } + + private string BuildCmdParameters(ConfigJson configJson, string package_version) + { + // Parameter list that needs to be passed to FPM tool: + // -s : is the input source type(dir) --Static + // -t : is the type of package(rpm) --Static + // -n : is for the name of the package --JSON + // -v : is the version to give to the package --ARG + // -a : architecture --JSON + // -d : is for all dependent packages. This can be used multiple times to specify the dependencies of the package. --JSON + // --rpm-os : the operating system to target this rpm --Static + // --rpm-changelog : the changelog from FILEPATH contents --ARG + // --rpm-summary : it is the RPM summary that shows in the Title --JSON + // --description : it is the description for the package --JSON + // -p : The actual package name (with path) for your package. --ARG+JSON + // --conflicts : Other packages/versions this package conflicts with provided as CSV --JSON + // --directories : Recursively add directories as being owned by the package. --JSON + // --after-install : FILEPATH to the script to be run after install of the package --JSON + // --after-remove : FILEPATH to the script to be run after package removal --JSON + // --license : the licensing name for the package. This will include the license type in the meta-data for the package, but will not include the associated license file within the package itself. --JSON + // --iteration : the iteration to give to the package. This comes from the package_revision --JSON + // --url : url for this package. --JSON + // --verbose : Set verbose output for FPM tool --Static + // : Add all the folder mappings for packge_root, docs, man pages --Static + + var parameters = new List(); + parameters.Add("-s dir"); + parameters.Add("-t rpm"); + parameters.Add(string.Concat("-n ", configJson.Package_Name)); + parameters.Add(string.Concat("-v ", package_version)); + parameters.Add(string.Concat("-a ", configJson.Control.Architecture)); + + // Build the list of dependencies as -d -d + if (configJson.Rpm_Dependencies != null) + { + foreach (RpmDependency rpmdep in configJson.Rpm_Dependencies) + { + string dependency = ""; + if (rpmdep.Package_Name != "") + { + // If no version is specified then the dependency is just the package without >= check + if (rpmdep.Package_Version == "") + { + dependency = rpmdep.Package_Name; + } + else + { + dependency = string.Concat(rpmdep.Package_Name, " >= ", rpmdep.Package_Version); + } + } + if (dependency != "") parameters.Add(string.Concat("-d ", EscapeArg(dependency))); + } + } + + // Build the list of owned directories + if (configJson.Directories != null) + { + foreach (string dir in configJson.Directories) + { + if (dir != "") + { + parameters.Add(string.Concat("--directories ", EscapeArg(dir))); + } + } + } + + parameters.Add("--rpm-os linux"); + parameters.Add(string.Concat("--rpm-changelog ", EscapeArg(Path.Combine(InputDir, "templates", "changelog")))); // Changelog File + parameters.Add(string.Concat("--rpm-summary ", EscapeArg(configJson.Short_Description))); + parameters.Add(string.Concat("--description ", EscapeArg(configJson.Long_Description))); + parameters.Add(string.Concat("--maintainer ", EscapeArg(configJson.Maintainer_Name + " <" + configJson.Maintainer_Email + ">"))); + parameters.Add(string.Concat("--vendor ", EscapeArg(configJson.Vendor))); + parameters.Add(string.Concat("-p ", Path.Combine(OutputDir, configJson.Package_Name + ".rpm"))); + if (configJson.Package_Conflicts != null) parameters.Add(string.Concat("--conflicts ", EscapeArg(string.Join(",", configJson.Package_Conflicts)))); + if (configJson.After_Install_Source != null) parameters.Add(string.Concat("--after-install ", Path.Combine(InputDir, EscapeArg(configJson.After_Install_Source)))); + if (configJson.After_Remove_Source != null) parameters.Add(string.Concat("--after-remove ", Path.Combine(InputDir, EscapeArg(configJson.After_Remove_Source)))); + parameters.Add(string.Concat("--license ", EscapeArg(configJson.License.Type))); + parameters.Add(string.Concat("--iteration ", configJson.Release.Package_Revision)); + parameters.Add(string.Concat("--url ", "\"", EscapeArg(configJson.Homepage), "\"")); + parameters.Add("--verbose"); + + // Map all the payload directories as they need to install on the system + if (configJson.Install_Root != null) parameters.Add(string.Concat(Path.Combine(InputDir, "package_root/="), configJson.Install_Root)); // Package Files + if (configJson.Install_Man != null) parameters.Add(string.Concat(Path.Combine(InputDir, "docs", "host/="), configJson.Install_Man)); // Man Pages + if (configJson.Install_Doc != null) parameters.Add(string.Concat(Path.Combine(InputDir, "templates", "copyright="), configJson.Install_Doc)); // CopyRight File + + return string.Join(" ", parameters); + } + + private string EscapeArg(string arg) + { + var sb = new StringBuilder(); + + bool quoted = ShouldSurroundWithQuotes(arg); + if (quoted) sb.Append("\""); + + for (int i = 0; i < arg.Length; ++i) + { + var backslashCount = 0; + + // Consume All Backslashes + while (i < arg.Length && arg[i] == '\\') + { + backslashCount++; + i++; + } + + // Escape any backslashes at the end of the arg + // This ensures the outside quote is interpreted as + // an argument delimiter + if (i == arg.Length) + { + sb.Append('\\', 2 * backslashCount); + } + + // Escape any preceding backslashes and the quote + else if (arg[i] == '"') + { + sb.Append('\\', (2 * backslashCount) + 1); + sb.Append('"'); + } + + // Output any consumed backslashes and the character + else + { + sb.Append('\\', backslashCount); + sb.Append(arg[i]); + } + } + + if (quoted) sb.Append("\""); + + return sb.ToString(); + } + private bool ShouldSurroundWithQuotes(string argument) + { + // Don't quote already quoted strings + if (argument.StartsWith("\"", StringComparison.Ordinal) && + argument.EndsWith("\"", StringComparison.Ordinal)) + { + return false; + } + + // Only quote if whitespace exists in the string + if (argument.Contains(" ") || argument.Contains("\t") || argument.Contains("\n")) + { + return true; + } + return false; + } + } + + /// + /// Model classes for reading and storing the JSON. + /// + public class ConfigJson + { + public string Maintainer_Name { get; set; } + public string Maintainer_Email { get; set; } + public string Vendor { get; set; } + public string Package_Name { get; set; } + public string Install_Root { get; set; } + public string Install_Doc { get; set; } + public string Install_Man { get; set; } + public string Short_Description { get; set; } + public string Long_Description { get; set; } + public string Homepage { get; set; } + public string CopyRight { get; set; } + public Release Release { get; set; } + public Control Control { get; set; } + public License License { get; set; } + public List Rpm_Dependencies { get; set; } + public List Package_Conflicts { get; set; } + public List Directories { get; set; } + public string After_Install_Source { get; set; } + public string After_Remove_Source { get; set; } + } + public class Release + { + public string Package_Version { get; set; } + public string Package_Revision { get; set; } + public string Urgency { get; set; } + public string Changelog_Message { get; set; } + } + public class Control + { + public string Priority { get; set; } + public string Section { get; set; } + public string Architecture { get; set; } + } + public class License + { + public string Type { get; set; } + public string Full_Text { get; set; } + } + public class RpmDependency + { + public string Package_Name { get; set; } + public string Package_Version { get; set; } + } +} diff --git a/tools-local/tasks/core-setup.tasks.builds b/tools-local/tasks/core-setup.tasks.builds index d37dd953..718ab565 100644 --- a/tools-local/tasks/core-setup.tasks.builds +++ b/tools-local/tasks/core-setup.tasks.builds @@ -5,7 +5,8 @@ TargetGroup=netstandard1.3 - + TargetGroup=net45 diff --git a/tools-local/tasks/core-setup.tasks.csproj b/tools-local/tasks/core-setup.tasks.csproj index 354bd672..39f2083b 100644 --- a/tools-local/tasks/core-setup.tasks.csproj +++ b/tools-local/tasks/core-setup.tasks.csproj @@ -37,18 +37,10 @@ - - 0.1.0-preview-00022 - - - 0.1.0-preview-00022 - - - 0.1.0-preview-00022 - - - 0.1.0-preview-00022 - + + + + 4.5.24 None