usage()
{
echo "Builds the NuGet packages from the binaries that were built in the Build product binaries step."
- echo "Usage: build-packages -BuildArch -BuildType [-portable]"
+ echo "Usage: build-packages -BuildArch -BuildType"
echo "BuildArch can be x64, x86, arm, arm64 (default is x64)"
echo "BuildType can be release, checked, debug (default is debug)"
- echo "-portable - build for Portable Distribution"
echo
exit 1
}
__ProjectRoot="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-__PortableBuild=0
+__IsPortableBuild=1
# Use uname to determine what the OS is.
OSName=$(uname -s)
__Arch=$(echo $1| cut -d'=' -f 2)
;;
- -portableBuild)
- __PortableBuild=1
+ -PortableBuild=false)
+ unprocessedBuildArgs="$unprocessedBuildArgs $1"
+ __IsPortableBuild=0
;;
*)
unprocessedBuildArgs="$unprocessedBuildArgs $1"
done
# Portable builds target the base RID
-if [ $__PortableBuild == 1 ]; then
+if [ $__IsPortableBuild == 1 ]; then
if [ "$__BuildOS" == "Linux" ]; then
export __DistroRid="linux-$__Arch"
elif [ "$__BuildOS" == "OSX" ]; then
set __BuildNativeCoreLib=1
set __RestoreOptData=1
-REM Is this a portable build?
-set __IsPortableBuild=
-
:Arg_Loop
if "%1" == "" goto ArgsDone
if /i "%1" == "checked" (set __BuildTypeChecked=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "release" (set __BuildTypeRelease=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-if /i "%1" == "-portable" (set __IsPortableBuild=-portable&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
-
REM All arguments after this point will be passed through directly to build.cmd on nested invocations
REM using the "all" argument, and must be added to the __PassThroughArgs variable.
if [!__PassThroughArgs!]==[] (
set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__LogsDir%\Nuget_%__BuildOS%__%__BuildArch%__%__BuildType%.err"
REM The conditions as to what to build are captured in the builds file.
- @call %__ProjectDir%\run.cmd build -Project=%__SourceDir%\.nuget\packages.builds %__IsPortableBuild% -platform=%__BuildArch% -MsBuildLog=!__MsbuildLog! -MsBuildWrn=!__MsbuildWrn! -MsBuildErr=!__MsbuildErr! %__RunArgs% %__UnprocessedBuildArgs%
+ @call %__ProjectDir%\run.cmd build -Project=%__SourceDir%\.nuget\packages.builds -platform=%__BuildArch% -MsBuildLog=!__MsbuildLog! -MsBuildWrn=!__MsbuildWrn! -MsBuildErr=!__MsbuildErr! %__RunArgs% %__UnprocessedBuildArgs%
if not !errorlevel! == 0 (
echo %__MsgPrefix%Error: Nuget package generation failed build failed. Refer to the build log files for details:
echo "skiptests - skip the tests in the 'tests' subdirectory."
echo "skipnuget - skip building nuget packages."
echo "skiprestoreoptdata - skip restoring optimization data used by profile-based optimizations."
- echo "portable - build for portable RID."
echo "verbose - optional argument to enable verbose build output."
echo "-skiprestore: skip restoring packages ^(default: packages are restored during build^)."
echo "-disableoss: Disable Open Source Signing for System.Private.CoreLib."
__cmakeargs=""
__SkipGenerateVersion=0
__DoCrossArchBuild=0
-__PortableBuild=0
+__PortableBuild=1
__msbuildonunsupportedplatform=0
__PgoOptDataVersion=""
__IbcOptDataVersion=""
__CrossBuild=1
;;
- -portable)
- __PortableBuild=1
+ -portablebuild=false)
+ __PortableBuild=0
;;
verbose)
__ClangMajorVersion=3
__ClangMinorVersion=6
fi
+
+ if [[ "$__BuildArch" == "armel" ]]; then
+ # Armel cross build is Tizen specific and does not support Portable RID build
+ __PortableBuild=0
+ fi
+
else
__ClangMajorVersion=3
__ClangMinorVersion=5
fi
fi
+if [ $__PortableBuild == 0 ]; then
+ __RunArgs="$__RunArgs -PortableBuild=false"
+fi
+
# Set dependent variables
__LogsDir="$__RootBinDir/Logs"
},
"inputs": {
"filename": "docker",
- "arguments": "run --rm -e ROOTFS_DIR $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) $(portableBuild) skipnuget cross -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
+ "arguments": "run --rm -e ROOTFS_DIR $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) skipnuget cross -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"inputs": {
"filename": "docker",
- "arguments": "run --rm $(DockerCommonRunArgs) ./build-packages.sh $(portableBuild) -BuildType=$(PB_BuildType) -BuildArch=$(Architecture)",
+ "arguments": "run --rm $(DockerCommonRunArgs) ./build-packages.sh -BuildType=$(PB_BuildType) -BuildArch=$(Architecture)",
"workingFolder": "",
"failOnStandardError": "false"
}
"DockerCopyDest": {
"value": "$(Build.BinariesDirectory)/docker_repo"
},
- "portableBuild": {
- "value": ""
- },
"ROOTFS_DIR": {
"value": "/crossrootfs/$(Architecture)"
},
"deleteTestResults": true
}
],
- "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)-$(DockerTag)$(portableBuild)",
+ "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)-$(DockerTag)",
"jobAuthorizationScope": "projectCollection",
"jobTimeoutInMinutes": 90,
"repository": {
},
"inputs": {
"filename": "docker",
- "arguments": "run --rm $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) $(portableBuild) skipnuget -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
+ "arguments": "run --rm $(DockerCommonRunArgs) ./build.sh $(PB_BuildType) $(Architecture) skipnuget -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId) -- /flp:\"v=diag\"",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"inputs": {
"filename": "docker",
- "arguments": "run --rm $(DockerCommonRunArgs) ./build-packages.sh $(portableBuild) -BuildType=$(PB_BuildType) -BuildArch=$(Architecture)",
+ "arguments": "run --rm $(DockerCommonRunArgs) ./build-packages.sh -BuildType=$(PB_BuildType) -BuildArch=$(Architecture)",
"workingFolder": "",
"failOnStandardError": "false"
}
"value": "HEAD",
"allowOverride": true
},
- "portableBuild": {
- "value": ""
- },
"DockerVolumeName": {
"value": "coreclr-$(Build.BuildId)"
},
"deleteTestResults": true
}
],
- "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)-$(DockerTag)$(portableBuild)",
+ "buildNumberFormat": "$(date:yyyyMMdd)$(rev:-rr)-$(DockerTag)",
"jobAuthorizationScope": "projectCollection",
"jobTimeoutInMinutes": 90,
"repository": {
},
"inputs": {
"filename": "$(Agent.BuildDirectory)/s/build.sh",
- "arguments": "$(PB_BuildType) $(Architecture) $(portableBuild) skipnuget -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId)",
+ "arguments": "$(PB_BuildType) $(Architecture) skipnuget -skiprestore stripSymbols -OfficialBuildId=$(OfficialBuildId)",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"inputs": {
"filename": "$(Agent.BuildDirectory)/s/build-packages.sh",
- "arguments": "-BuildType=$(PB_BuildType) -BuildArch=$(Architecture) $(portableBuild)",
+ "arguments": "-BuildType=$(PB_BuildType) -BuildArch=$(Architecture)",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"Label": {
"value": "$(Build.BuildNumber)"
- },
- "portableBuild": {
- "value": ""
}
},
"demands": [
},
"inputs": {
"filename": "build.cmd",
- "arguments": "$(Architecture) $(PB_BuildType) skiptests skipbuildpackages -OfficialBuildId=$(OfficialBuildId) -skiprestore -Priority=$(Priority) $(portableBuild)",
+ "arguments": "$(Architecture) $(PB_BuildType) skiptests skipbuildpackages -OfficialBuildId=$(OfficialBuildId) -skiprestore -Priority=$(Priority)",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"inputs": {
"filename": "build-packages.cmd",
- "arguments": "-BuildArch=$(Architecture) -BuildType=$(PB_BuildType) $(portableBuild)",
+ "arguments": "-BuildArch=$(Architecture) -BuildType=$(PB_BuildType)",
"workingFolder": "",
"failOnStandardError": "false"
}
"VsoPassword": {
"value": null,
"isSecret": true
- },
- "portableBuild": {
- "value": ""
}
},
"retentionRules": [
},
"inputs": {
"filename": "build.cmd",
- "arguments": "$(Architecture) $(PB_BuildType) skiptests skipbuildpackages toolset_dir C:\\tools\\clr -OfficialBuildId=$(OfficialBuildId) -Priority=$(Priority) -skiprestore -disableoss $(portableBuild) -- /flp:\"v=diag\"",
+ "arguments": "$(Architecture) $(PB_BuildType) skiptests skipbuildpackages toolset_dir C:\\tools\\clr -OfficialBuildId=$(OfficialBuildId) -Priority=$(Priority) -skiprestore -disableoss -- /flp:\"v=diag\"",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"inputs": {
"filename": "build-packages.cmd",
- "arguments": "-BuildArch=$(Architecture) -BuildType=$(PB_BuildType) $(portableBuild)",
+ "arguments": "-BuildArch=$(Architecture) -BuildType=$(PB_BuildType)",
"workingFolder": "",
"failOnStandardError": "false"
}
},
"TeamName": {
"value": "DotNetCore"
- },
- "portableBuild": {
- "value": ""
}
},
"retentionRules": [
{
"Name": "DotNet-CoreClr-Trusted-Linux",
"Parameters": {
- "DockerTag": "debian82_prereqs_2",
- "Rid": "debian.8"
- },
- "ReportingParameters": {
- "OperatingSystem": "Debian 8.2",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "rhel7_prereqs_2",
- "Rid": "rhel.7"
- },
- "ReportingParameters": {
- "OperatingSystem": "RedHat 7",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "ubuntu1404_prereqs_v3",
- "Rid": "ubuntu.14.04"
- },
- "ReportingParameters": {
- "OperatingSystem": "Ubuntu 14.04",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "ubuntu1604_prereqs",
- "Rid": "ubuntu.16.04"
- },
- "ReportingParameters": {
- "OperatingSystem": "Ubuntu 16.04",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "ubuntu1610_prereqs_v2",
- "Rid": "ubuntu.16.10"
- },
- "ReportingParameters": {
- "OperatingSystem": "Ubuntu 16.10",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "fedora24_prereqs_v4",
- "Rid": "fedora.24"
- },
- "ReportingParameters": {
- "OperatingSystem": "Fedora 24",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
- "DockerTag": "opensuse421_prereqs_v3",
- "Rid": "opensuse.42.1"
- },
- "ReportingParameters": {
- "OperatingSystem": "openSUSE 42.1",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux",
- "Parameters": {
"DockerTag": "rhel7_prereqs_2",
- "portableBuild": "-portable",
"Rid": "linux"
},
"ReportingParameters": {
{
"Name": "DotNet-CoreClr-Trusted-Mac",
"Parameters": {
- "Rid": "osx.10.12"
- },
- "ReportingParameters": {
- "OperatingSystem": "OSX 10.12",
- "Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Mac",
- "Parameters": {
- "Rid": "osx",
- "portableBuild": "-portable"
+ "Rid": "osx"
},
"ReportingParameters": {
"OperatingSystem": "OSX",
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
- "Architecture": "x64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Windows",
- "Parameters": {
- "Architecture": "x64",
- "portableBuild": "-portable"
- },
- "ReportingParameters": {
- "OperatingSystem": "Windows",
- "Type": "build/product/",
"SubType" : "PortableBuild",
"Architecture": "x64",
"PB_BuildType": null
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
- "Architecture": "arm64",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Windows",
- "Parameters": {
- "Architecture": "arm64",
- "portableBuild": "-portable"
- },
- "ReportingParameters": {
- "OperatingSystem": "Windows",
- "Type": "build/product/",
"SubType" : "PortableBuild",
"Architecture": "arm64",
"PB_BuildType": null
"ReportingParameters": {
"OperatingSystem": "Windows",
"Type": "build/product/",
- "Architecture": "arm",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Windows",
- "Parameters": {
- "Architecture": "arm",
- "portableBuild": "-portable"
- },
- "ReportingParameters": {
- "OperatingSystem": "Windows",
- "Type": "build/product/",
"SubType" : "PortableBuild",
"Architecture": "arm",
"PB_BuildType": null
},
{
"Name": "DotNet-CoreClr-Trusted-Windows-x86",
- "ReportingParameters": {
- "OperatingSystem": "Windows",
- "Type": "build/product/",
- "Architecture": "x86",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Windows-x86",
"Parameters": {
- "portableBuild": "-portable"
+ "Architecture": "x86"
},
"ReportingParameters": {
"OperatingSystem": "Windows",
"Parameters": {
"DockerTag": "ubuntu-14.04-cross-0cd4667-20172211042239",
"Architecture": "arm",
- "Rid": "ubuntu.14.04"
- },
- "ReportingParameters": {
- "OperatingSystem": "Ubuntu 14.04",
- "SubType": "CrossBuild",
- "Type": "build/product/",
- "Architecture": "arm",
- "PB_BuildType": null
- }
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux-Crossbuild",
- "Parameters": {
- "DockerTag": "ubuntu-14.04-cross-0cd4667-20172211042239",
- "Architecture": "arm",
- "portableBuild": "-portable",
- "Rid": "ubuntu.14.04"
+ "Rid": "linux"
},
"ReportingParameters": {
"OperatingSystem": "Linux",
"Architecture": "arm",
"PB_BuildType": null
}
- },
- {
- "Name": "DotNet-CoreClr-Trusted-Linux-Crossbuild",
- "Parameters": {
- "DockerTag": "ubuntu-16.04-cross-ef0ac75-20175511035548",
- "Architecture": "arm",
- "Rid": "ubuntu.16.04"
- },
- "ReportingParameters": {
- "OperatingSystem": "Ubuntu 16.04",
- "SubType": "CrossBuild",
- "Type": "build/product/",
- "Architecture": "arm",
- "PB_BuildType": null
- }
}
]
}
"PortableBuild": {
"description": "Indicates if this is a portable build.",
"valueType": "property",
- "values": [ "0", "1"],
- "defaultValue": "0"
+ "values": [ "false", "true"],
+ "defaultValue": "true"
},
"Rebuild": {
"description": "Specifies rebuild target.",
"RestoreDuringBuild": false
}
},
- "portable": {
- "description": "Triggers a portable build.",
- "settings": {
- "PortableBuild": "1"
- }
- },
"BuildTarget": {
"description": "Runs the build target.",
"settings": {
"MsBuildErr": "default",
"MsBuildEventLogging": "default",
"RestoreDefaultOptimizationDataPackage": "false",
+ "PortableBuild": "true",
"UsePartialNGENOptimization": "false"
}
}
"__BuildArch": "default"
}
},
- "portable": {
- "description": "Triggers a portable build.",
- "settings": {
- "PortableBuild": "1"
- }
- },
"buildType": {
"description": "Specifies configuration to publish, can be Release, Debug or Checked.",
"settings": {
"__BuildOS": "default",
"MsBuildFileLogging": "/flp:v=detailed;Append;LogFile=build-packages.log",
"MsBuildEventLogging": "default",
+ "PortableBuild": "true",
"Project": "src/.nuget/packages.builds"
}
}
<Platform Condition="'$(Platform)' == ''">$(BuildArch)</Platform>
<Platform Condition="'$(Platform)' == 'amd64'">x64</Platform>
+
+ <!-- Default to portable build if not explicitly set -->
+ <PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
</PropertyGroup>
<!-- Output paths -->
<SupportedPackageOSGroups Condition="'$(SupportedPackageOSGroups)' == ''">Windows_NT;OSX;Linux</SupportedPackageOSGroups>
<SupportedPackageOSGroups>;$(SupportedPackageOSGroups);</SupportedPackageOSGroups>
+ <!-- Identify OS family based upon the RuntimeOS, which could be distro specific (e.g. osx.10.12) or
+ portable (e.g. osx).
+ -->
<_runtimeOSVersionIndex>$(RuntimeOS.IndexOfAny(".-0123456789"))</_runtimeOSVersionIndex>
<_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' != '-1'">$(RuntimeOS.SubString(0, $(_runtimeOSVersionIndex)))</_runtimeOSFamily>
+ <_runtimeOSFamily Condition="'$(_runtimeOSVersionIndex)' == '-1'">$(RuntimeOS)</_runtimeOSFamily>
<_isSupportedOSGroup>true</_isSupportedOSGroup>
</PropertyGroup>
<RIDPlatform Condition="'$(ArchGroup)' == 'arm64'">win10</RIDPlatform>
<!-- Set the platform part of the RID if we are doing a portable build -->
- <RIDPlatform Condition="'$(PortableBuild)' == '1'">win</RIDPlatform>
+ <RIDPlatform Condition="'$(PortableBuild)' == 'true'">win</RIDPlatform>
<PackageRID>$(RIDPlatform)-$(ArchGroup)</PackageRID>
</PropertyGroup>
</When>
<PropertyGroup>
<PackageRID>osx.10.12-$(ArchGroup)</PackageRID>
<!-- Set the platform part of the RID if we are doing a portable build -->
- <PackageRID Condition="'$(PortableBuild)' == '1'">osx-$(ArchGroup)</PackageRID>
+ <PackageRID Condition="'$(PortableBuild)' == 'true'">osx-$(ArchGroup)</PackageRID>
</PropertyGroup>
</When>
<When Condition="'$(_runtimeOSFamily)' == 'rhel'">
<PropertyGroup>
<PackageRID>rhel.7-$(ArchGroup)</PackageRID>
<!-- Set the platform part of the RID if we are doing a portable build -->
- <PackageRID Condition="'$(PortableBuild)' == '1'">linux-$(ArchGroup)</PackageRID>
+ <PackageRID Condition="'$(PortableBuild)' == 'true'">linux-$(ArchGroup)</PackageRID>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<PackageRID>$(RuntimeOS)-$(ArchGroup)</PackageRID>
<!-- Set the platform part of the RID if we are doing a portable build -->
- <PackageRID Condition="'$(PortableBuild)' == '1'">linux-$(ArchGroup)</PackageRID>
+ <PackageRID Condition="'$(PortableBuild)' == 'true'">linux-$(ArchGroup)</PackageRID>
</PropertyGroup>
</Otherwise>
</Choose>
</Choose>
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';Linux;'))">
- <OfficialBuildRID Include="alpine.3.4.3-x64" />
- <OfficialBuildRID Include="debian.8-x64" />
- <OfficialBuildRID Include="fedora.23-x64" />
- <OfficialBuildRID Include="fedora.24-x64" />
<OfficialBuildRID Include="linux-x64" />
<OfficialBuildRID Include="linux-arm">
<Platform>arm</Platform>
</OfficialBuildRID>
- <OfficialBuildRID Include="opensuse.42.1-x64" />
- <OfficialBuildRID Include="rhel.7-x64" />
<OfficialBuildRID Include="tizen.4.0.0-armel">
<Platform>armel</Platform>
</OfficialBuildRID>
- <OfficialBuildRID Include="ubuntu.14.04-arm">
- <Platform>arm</Platform>
- </OfficialBuildRID>
- <OfficialBuildRID Include="ubuntu.14.04-x64" />
- <OfficialBuildRID Include="ubuntu.16.04-arm">
- <Platform>arm</Platform>
- </OfficialBuildRID>
- <OfficialBuildRID Include="ubuntu.16.04-x64" />
- <OfficialBuildRID Include="ubuntu.16.10-x64" />
</ItemGroup>
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';OSX;'))">
- <OfficialBuildRID Include="osx.10.12-x64" />
<OfficialBuildRID Include="osx-x64" />
</ItemGroup>
<ItemGroup Condition="$(SupportedPackageOSGroups.Contains(';Windows_NT;'))">
- <OfficialBuildRID Include="win7-x86">
- <Platform>x86</Platform>
- </OfficialBuildRID>
<OfficialBuildRID Include="win-x86">
<Platform>x86</Platform>
</OfficialBuildRID>
- <OfficialBuildRID Include="win7-x64" />
<OfficialBuildRID Include="win-x64" />
- <OfficialBuildRID Include="win8-arm">
- <Platform>arm</Platform>
- </OfficialBuildRID>
- <OfficialBuildRID Include="win10-arm64">
- <Platform>arm64</Platform>
- </OfficialBuildRID>
<OfficialBuildRID Include="win-arm">
<Platform>arm</Platform>
</OfficialBuildRID>