You've already forked linux-packaging-mono
Imported Upstream version 6.12.0.86
Former-commit-id: 7a84ce7d08c42c458ac8e74b27186ca863315d79
This commit is contained in:
parent
92747312ea
commit
0b380204a4
1
external/linker/.editorconfig
vendored
1
external/linker/.editorconfig
vendored
@@ -1,5 +1,6 @@
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
end_of_line = "lf"
|
||||
|
||||
[*.cs]
|
||||
indent_style = tab
|
||||
|
2
external/linker/.gitignore
vendored
2
external/linker/.gitignore
vendored
@@ -32,4 +32,4 @@ bin/
|
||||
.packages
|
||||
artifacts
|
||||
|
||||
monobuild/TestResults.xml
|
||||
test/Mono.Linker.Tests/TestResults.xml
|
||||
|
2
external/linker/Directory.Build.props
vendored
2
external/linker/Directory.Build.props
vendored
@@ -1,5 +1,5 @@
|
||||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition=" '$(ArcadeBuild)' == 'true' " />
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(MonoBuild)' == ''" />
|
||||
<PropertyGroup>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
8
external/linker/Directory.Build.targets
vendored
8
external/linker/Directory.Build.targets
vendored
@@ -1,11 +1,5 @@
|
||||
<Project>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition=" '$(ArcadeBuild)' == 'true' " />
|
||||
|
||||
<!-- Map the Arcade "Test" target to the "VSTest" target used by "dotnet test" -->
|
||||
<Target Name="Test"
|
||||
Condition=" '$(ArcadeBuild)' == 'true' And '$(DisableArcadeTestFramework)' == 'true' ">
|
||||
<MSBuild Projects="$(MSBuildProjectFile)" Targets="VSTest" />
|
||||
</Target>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(MonoBuild)' == ''" />
|
||||
|
||||
<Target Name="VSTestIfTestProject">
|
||||
<CallTarget Targets="VSTest" Condition="'$(IsTestProject)' == 'true'" />
|
||||
|
2
external/linker/build.cmd
vendored
Normal file
2
external/linker/build.cmd
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
@echo off
|
||||
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -projects """%~dp0illink.sln""" -restore -build %*"
|
16
external/linker/build.sh
vendored
Executable file
16
external/linker/build.sh
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
|
||||
# resolve $SOURCE until the file is no longer a symlink
|
||||
while [[ -h $source ]]; do
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
source="$(readlink "$source")"
|
||||
|
||||
# if $source was a relative symlink, we need to resolve it relative to the path where the
|
||||
# symlink file was located
|
||||
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||
done
|
||||
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
"$scriptroot/eng/common/build.sh" --projects "$scriptroot/illink.sln" --build --restore $@
|
1
external/linker/eng/Signing.props
vendored
1
external/linker/eng/Signing.props
vendored
@@ -4,6 +4,5 @@
|
||||
<FileSignInfo Include="Mono.Cecil.dll" CertificateName="3PartySHA2" />
|
||||
<FileSignInfo Include="Mono.Cecil.Mdb.dll" CertificateName="3PartySHA2" />
|
||||
<FileSignInfo Include="Mono.Cecil.Pdb.dll" CertificateName="3PartySHA2" />
|
||||
<FileSignInfo Include="illink.dll" CertificateName="3PartySHA2" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
4
external/linker/eng/Version.Details.xml
vendored
4
external/linker/eng/Version.Details.xml
vendored
@@ -3,9 +3,9 @@
|
||||
<ProductDependencies>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.19601.1">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20109.1">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>c0b56ff3569e3c7475070486c40543ea4c6f6dc7</Sha>
|
||||
<Sha>b0e8d3944155f94f83deea8afe025debe369e69f</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
1
external/linker/eng/Versions.props
vendored
1
external/linker/eng/Versions.props
vendored
@@ -5,6 +5,7 @@
|
||||
<PreReleaseVersionLabel>prerelease</PreReleaseVersionLabel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<UsingToolMicrosoftNetCompilers>true</UsingToolMicrosoftNetCompilers>
|
||||
<!-- ilasm -->
|
||||
<MicrosoftNETCoreILAsmPackageVersion>5.0.0-alpha1.19413.7</MicrosoftNETCoreILAsmPackageVersion>
|
||||
<!-- These should match the SDK version at https://github.com/dotnet/sdk/blob/master/eng/Versions.props -->
|
||||
|
176
external/linker/eng/azure-pipelines.yml
vendored
176
external/linker/eng/azure-pipelines.yml
vendored
@@ -11,90 +11,122 @@ variables:
|
||||
- name: _BuildConfig
|
||||
value: Release
|
||||
- name: _BuildArgs
|
||||
value: /p:ArcadeBuild=true
|
||||
value:
|
||||
- name: _DotNetArtifactsCategory
|
||||
value: .NETCore
|
||||
- ${{ if eq(variables.officialBuild, 'true') }}:
|
||||
- name: _BuildArgs
|
||||
value: ${{ format('{0} /p:OfficialBuildId=$(Build.BuildNumber)', variables['_BuildArgs']) }}
|
||||
value: ${{ format('{0} /p:OfficialBuildId=$(Build.BuildNumber) /p:Test=false /p:IntegrationTest=false', variables['_BuildArgs']) }}
|
||||
# Provide HelixApiAccessToken for telemetry
|
||||
- group: DotNet-HelixApi-Access
|
||||
|
||||
jobs:
|
||||
- template: /eng/common/templates/jobs/jobs.yml
|
||||
parameters:
|
||||
stages:
|
||||
- stage: build
|
||||
displayName: Build
|
||||
jobs:
|
||||
- template: /eng/common/templates/jobs/jobs.yml
|
||||
parameters:
|
||||
|
||||
enableTelemetry: true # send helix telemetry
|
||||
helixRepo: mono/linker
|
||||
enablePublishBuildArtifacts: true # publish build logs to pipeline storage
|
||||
# enablePublishTestResults
|
||||
enablePublishBuildAssets: true # generate build manifests and publish to BAR in internal builds
|
||||
enableMicrobuild: true # only affects internal builds
|
||||
enableTelemetry: true # send helix telemetry
|
||||
helixRepo: mono/linker
|
||||
enablePublishUsingPipelines: true
|
||||
enablePublishBuildArtifacts: true # publish build logs to pipeline storage
|
||||
enablePublishTestResults: true
|
||||
enablePublishBuildAssets: true # generate build manifests and publish to BAR in internal builds
|
||||
enableMicrobuild: true # only affects internal builds
|
||||
|
||||
jobs:
|
||||
jobs:
|
||||
|
||||
- job: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables.officialBuild, 'false') }}:
|
||||
name: Hosted VS2017
|
||||
${{ if eq(variables.officialBuild, 'true') }}:
|
||||
name: NetCoreInternal-Pool
|
||||
queue: BuildPool.Windows.10.Amd64.VS2017
|
||||
variables:
|
||||
- ${{ if eq(variables.officialBuild, 'false') }}:
|
||||
- _SignType: test
|
||||
- _PublishArgs: ''
|
||||
- ${{ if eq(variables.officialBuild, 'true') }}:
|
||||
- group: DotNet-Blob-Feed
|
||||
- _TeamName: .NET # required by microbuild install step
|
||||
- _SignType: real # used in the arcade templates that install microbuild.
|
||||
- _DotNetPublishToBlobFeed: true # used by arcade templates that gather build asset manifests
|
||||
- _PublishArgs: /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
|
||||
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
|
||||
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
|
||||
- DotNetSignType: ${{ format('{0}', variables._SignType) }} # DotNetSignType defaults to real if not specified
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng\common\cibuild.cmd -projects $(Build.SourcesDirectory)\illink.sln
|
||||
-configuration $(_BuildConfig) $(_BuildArgs) $(_PublishArgs)
|
||||
-warnAsError "$false"
|
||||
-nodeReuse "$false" # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
${{ if eq(variables.officialBuild, 'false') }}:
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
${{ if eq(variables.officialBuild, 'true') }}:
|
||||
displayName: Build and publish illink.sln $(_BuildConfig)
|
||||
- job: Windows_NT
|
||||
pool:
|
||||
${{ if eq(variables.officialBuild, 'false') }}:
|
||||
name: Hosted VS2017
|
||||
${{ if eq(variables.officialBuild, 'true') }}:
|
||||
name: NetCoreInternal-Pool
|
||||
queue: BuildPool.Windows.10.Amd64.VS2017
|
||||
variables:
|
||||
- ${{ if eq(variables.officialBuild, 'false') }}:
|
||||
- _SignType: test
|
||||
- _PublishArgs: ''
|
||||
- ${{ if eq(variables.officialBuild, 'true') }}:
|
||||
- group: DotNet-Blob-Feed
|
||||
- _TeamName: .NET # required by microbuild install step
|
||||
- _SignType: real # used in the arcade templates that install microbuild.
|
||||
- _DotNetPublishToBlobFeed: true # used by arcade templates that gather build asset manifests
|
||||
- _PublishArgs: /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
|
||||
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
|
||||
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
|
||||
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
|
||||
/p:DotNetPublishUsingPipelines=true
|
||||
- DotNetSignType: ${{ format('{0}', variables._SignType) }} # DotNetSignType defaults to real if not specified
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng\common\cibuild.cmd -projects $(Build.SourcesDirectory)\illink.sln
|
||||
-configuration $(_BuildConfig) $(_BuildArgs) $(_PublishArgs)
|
||||
-integrationTest
|
||||
-warnAsError "$false"
|
||||
-nodeReuse "$false" # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
${{ if eq(variables.officialBuild, 'false') }}:
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
${{ if eq(variables.officialBuild, 'true') }}:
|
||||
displayName: Build and publish illink.sln $(_BuildConfig)
|
||||
|
||||
- job: Linux
|
||||
- ${{ if eq(variables.officialBuild, 'false') }}:
|
||||
- job: Linux
|
||||
condition: eq(variables.officialBuild, 'false')
|
||||
pool:
|
||||
name: Hosted Ubuntu 1604
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
|
||||
--configuration $(_BuildConfig) $(_BuildArgs)
|
||||
--integrationTest
|
||||
--warnAsError false
|
||||
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
|
||||
- ${{ if eq(variables.officialBuild, 'false') }}:
|
||||
- job: macOS
|
||||
pool:
|
||||
name: Hosted MacOS
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
|
||||
--configuration $(_BuildConfig) $(_BuildArgs)
|
||||
--integrationTest
|
||||
--warnAsError false
|
||||
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
|
||||
- ${{ if eq(variables.officialBuild, 'false') }}:
|
||||
- job: Linux_Mono
|
||||
pool:
|
||||
name: Hosted Ubuntu 1604
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
|
||||
--configuration $(_BuildConfig) $(_BuildArgs)
|
||||
--warnAsError false
|
||||
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
- script: |
|
||||
mono --version
|
||||
make -C monobuild CONFIGURATION=$(_BuildConfig)
|
||||
displayName: Build and test
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: 'NUnit'
|
||||
testResultsFiles: 'test/Mono.Linker.Tests/TestResults.xml'
|
||||
|
||||
# Post-Build Arcade logic
|
||||
- ${{ if eq(variables.officialBuild, 'true') }}:
|
||||
- template: /eng/common/templates/post-build/post-build.yml
|
||||
|
||||
- job: macOS
|
||||
pool:
|
||||
${{ if eq(variables.officialBuild, 'false') }}:
|
||||
name: Hosted MacOS
|
||||
${{ if eq(variables.officialBuild, 'true') }}:
|
||||
name: Hosted Mac Internal
|
||||
steps:
|
||||
- checkout: self
|
||||
submodules: true
|
||||
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
|
||||
--configuration $(_BuildConfig) $(_BuildArgs)
|
||||
--warnAsError false
|
||||
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
|
||||
env:
|
||||
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
|
||||
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
|
||||
displayName: Build illink.sln $(_BuildConfig)
|
||||
|
65
external/linker/eng/common/SetupNugetSources.ps1
vendored
65
external/linker/eng/common/SetupNugetSources.ps1
vendored
@@ -16,7 +16,7 @@
|
||||
# condition: eq(variables['Agent.OS'], 'Windows_NT')
|
||||
# inputs:
|
||||
# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
# arguments: -ConfigFile ${Env:BUILD_SOURCESDIRECTORY}/NuGet.config -Password $Env:Token
|
||||
# arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
# env:
|
||||
# Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
|
||||
@@ -94,41 +94,48 @@ function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Password) {
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
if (!(Test-Path $ConfigFile -PathType Leaf)) {
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message "Couldn't find the file NuGet config file: $ConfigFile"
|
||||
if (!(Test-Path $ConfigFile -PathType Leaf)) {
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
if (!$Password) {
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message 'Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. Please supply a valid PAT'
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
|
||||
# Load NuGet.config
|
||||
$doc = New-Object System.Xml.XmlDocument
|
||||
$filename = (Get-Item $ConfigFile).FullName
|
||||
$doc.Load($filename)
|
||||
# Load NuGet.config
|
||||
$doc = New-Object System.Xml.XmlDocument
|
||||
$filename = (Get-Item $ConfigFile).FullName
|
||||
$doc.Load($filename)
|
||||
|
||||
# Get reference to <PackageSources> or create one if none exist already
|
||||
$sources = $doc.DocumentElement.SelectSingleNode("packageSources")
|
||||
if ($sources -eq $null) {
|
||||
$sources = $doc.CreateElement("packageSources")
|
||||
$doc.DocumentElement.AppendChild($sources) | Out-Null
|
||||
}
|
||||
# Get reference to <PackageSources> or create one if none exist already
|
||||
$sources = $doc.DocumentElement.SelectSingleNode("packageSources")
|
||||
if ($sources -eq $null) {
|
||||
$sources = $doc.CreateElement("packageSources")
|
||||
$doc.DocumentElement.AppendChild($sources) | Out-Null
|
||||
}
|
||||
|
||||
# Looks for a <PackageSourceCredentials> node. Create it if none is found.
|
||||
$creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials")
|
||||
if ($creds -eq $null) {
|
||||
$creds = $doc.CreateElement("packageSourceCredentials")
|
||||
$doc.DocumentElement.AppendChild($creds) | Out-Null
|
||||
}
|
||||
# Looks for a <PackageSourceCredentials> node. Create it if none is found.
|
||||
$creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials")
|
||||
if ($creds -eq $null) {
|
||||
$creds = $doc.CreateElement("packageSourceCredentials")
|
||||
$doc.DocumentElement.AppendChild($creds) | Out-Null
|
||||
}
|
||||
|
||||
# Insert credential nodes for Maestro's private feeds
|
||||
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Password $Password
|
||||
# Insert credential nodes for Maestro's private feeds
|
||||
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Password $Password
|
||||
|
||||
$dotnet3Source = $sources.SelectSingleNode("add[@key='dotnet3']")
|
||||
if ($dotnet3Source -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v2" -Creds $creds -Username "dn-bot" -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v2" -Creds $creds -Username "dn-bot" -Password $Password
|
||||
}
|
||||
|
||||
$doc.Save($filename)
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
|
||||
ExitWithExitCode 1
|
||||
$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
|
||||
if ($dotnet31Source -ne $null) {
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username "dn-bot" -Password $Password
|
||||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username "dn-bot" -Password $Password
|
||||
}
|
||||
|
||||
$doc.Save($filename)
|
||||
|
78
external/linker/eng/common/SetupNugetSources.sh
vendored
78
external/linker/eng/common/SetupNugetSources.sh
vendored
@@ -17,7 +17,7 @@
|
||||
# displayName: Setup Private Feeds Credentials
|
||||
# inputs:
|
||||
# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
# arguments: $BUILD_SOURCESDIRECTORY/NuGet.config $Token
|
||||
# arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
# condition: ne(variables['Agent.OS'], 'Windows_NT')
|
||||
# env:
|
||||
# Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
@@ -42,7 +42,12 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
. "$scriptroot/tools.sh"
|
||||
|
||||
if [ ! -f "$ConfigFile" ]; then
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message "Couldn't find the file NuGet config file: $ConfigFile"
|
||||
Write-PipelineTelemetryError -Category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. Couldn't find the NuGet config file: $ConfigFile"
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
|
||||
if [ -z "$CredToken" ]; then
|
||||
Write-PipelineTelemetryError -category 'Build' "Error: Eng/common/SetupNugetSources.sh returned a non-zero exit code. Please supply a valid PAT"
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
|
||||
@@ -52,7 +57,7 @@ if [[ `uname -s` == "Darwin" ]]; then
|
||||
fi
|
||||
|
||||
# Ensure there is a <packageSources>...</packageSources> section.
|
||||
grep -i "<packageSources>" $ConfigFile
|
||||
grep -i "<packageSources>" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding <packageSources>...</packageSources> section."
|
||||
ConfigNodeHeader="<configuration>"
|
||||
@@ -62,7 +67,7 @@ if [ "$?" != "0" ]; then
|
||||
fi
|
||||
|
||||
# Ensure there is a <packageSourceCredentials>...</packageSourceCredentials> section.
|
||||
grep -i "<packageSourceCredentials>" $ConfigFile
|
||||
grep -i "<packageSourceCredentials>" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding <packageSourceCredentials>...</packageSourceCredentials> section."
|
||||
|
||||
@@ -72,37 +77,64 @@ if [ "$?" != "0" ]; then
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourcesNodeFooter${NL}$PackageSourceCredentialsTemplate|" NuGet.config
|
||||
fi
|
||||
|
||||
# Ensure dotnet3-internal and dotnet3-internal-transport is in the packageSources
|
||||
grep -i "<add key=\"dotnet3-internal\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3-internal to the packageSources."
|
||||
PackageSources=()
|
||||
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3-internal\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v2\" />"
|
||||
# Ensure dotnet3-internal and dotnet3-internal-transport are in the packageSources if the public dotnet3 feeds are present
|
||||
grep -i "<add key=\"dotnet3\"" $ConfigFile
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" NuGet.config
|
||||
if [ "$?" == "0" ]; then
|
||||
grep -i "<add key=\"dotnet3-internal\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3-internal to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3-internal\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet3-internal')
|
||||
|
||||
grep -i "<add key=\"dotnet3-internal-transport\"" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3-internal-transport to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet3-internal-transport')
|
||||
fi
|
||||
|
||||
# Ensure dotnet3-internal and dotnet3-internal-transport is in the packageSources
|
||||
grep -i "<add key=\"dotnet3-internal-transport\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3-internal-transport to the packageSources."
|
||||
# Ensure dotnet3.1-internal and dotnet3.1-internal-transport are in the packageSources if the public dotnet3.1 feeds are present
|
||||
grep -i "<add key=\"dotnet3.1\"" $ConfigFile
|
||||
if [ "$?" == "0" ]; then
|
||||
grep -i "<add key=\"dotnet3.1-internal\"" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3.1-internal to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3.1-internal\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2\" />"
|
||||
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal-transport/nuget/v2\" />"
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet3.1-internal')
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" NuGet.config
|
||||
grep -i "<add key=\"dotnet3.1-internal-transport\">" $ConfigFile
|
||||
if [ "$?" != "0" ]; then
|
||||
echo "Adding dotnet3.1-internal-transport to the packageSources."
|
||||
PackageSourcesNodeFooter="</packageSources>"
|
||||
PackageSourceTemplate="${TB}<add key=\"dotnet3.1-internal-transport\" value=\"https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2\" />"
|
||||
|
||||
sed -i.bak "s|$PackageSourcesNodeFooter|$PackageSourceTemplate${NL}$PackageSourcesNodeFooter|" $ConfigFile
|
||||
fi
|
||||
PackageSources+=('dotnet3.1-internal-transport')
|
||||
fi
|
||||
|
||||
# I want things split line by line
|
||||
PrevIFS=$IFS
|
||||
IFS=$'\n'
|
||||
PackageSources=$(grep -oh '"darc-int-[^"]*"' $ConfigFile | tr -d '"')
|
||||
PackageSources+="$IFS"
|
||||
PackageSources+=$(grep -oh '"darc-int-[^"]*"' $ConfigFile | tr -d '"')
|
||||
IFS=$PrevIFS
|
||||
|
||||
PackageSources+=('dotnet3-internal')
|
||||
PackageSources+=('dotnet3-internal-transport')
|
||||
|
||||
for FeedName in ${PackageSources[@]} ; do
|
||||
# Check if there is no existing credential for this FeedName
|
||||
grep -i "<$FeedName>" $ConfigFile
|
||||
@@ -112,6 +144,6 @@ for FeedName in ${PackageSources[@]} ; do
|
||||
PackageSourceCredentialsNodeFooter="</packageSourceCredentials>"
|
||||
NewCredential="${TB}${TB}<$FeedName>${NL}<add key=\"Username\" value=\"dn-bot\" />${NL}<add key=\"ClearTextPassword\" value=\"$CredToken\" />${NL}</$FeedName>"
|
||||
|
||||
sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" NuGet.config
|
||||
sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile
|
||||
fi
|
||||
done
|
||||
|
11
external/linker/eng/common/build.ps1
vendored
11
external/linker/eng/common/build.ps1
vendored
@@ -62,6 +62,8 @@ function Print-Usage() {
|
||||
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
|
||||
}
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
function InitializeCustomToolset {
|
||||
if (-not $restore) {
|
||||
return
|
||||
@@ -113,8 +115,6 @@ function Build {
|
||||
}
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
if ($clean) {
|
||||
if (Test-Path $ArtifactsDir) {
|
||||
Remove-Item -Recurse -Force $ArtifactsDir
|
||||
@@ -122,12 +122,7 @@ try {
|
||||
}
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ((Test-Path variable:LastExitCode) -And ($LastExitCode -ne 0)) {
|
||||
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message 'Eng/common/tools.ps1 returned a non-zero exit code.'
|
||||
ExitWithExitCode $LastExitCode
|
||||
}
|
||||
|
||||
|
||||
if ($help -or (($null -ne $properties) -and ($properties.Contains('/help') -or $properties.Contains('/?')))) {
|
||||
Print-Usage
|
||||
exit 0
|
||||
|
19
external/linker/eng/common/cross/build-rootfs.sh
vendored
19
external/linker/eng/common/cross/build-rootfs.sh
vendored
@@ -25,8 +25,9 @@ __UbuntuPackages="build-essential"
|
||||
__AlpinePackages="alpine-base"
|
||||
__AlpinePackages+=" build-base"
|
||||
__AlpinePackages+=" linux-headers"
|
||||
__AlpinePackages+=" lldb-dev"
|
||||
__AlpinePackages+=" llvm-dev"
|
||||
__AlpinePackagesEdgeTesting=" lldb-dev"
|
||||
__AlpinePackagesEdgeMain=" llvm9-libs"
|
||||
__AlpinePackagesEdgeMain+=" python3"
|
||||
|
||||
# symlinks fixer
|
||||
__UbuntuPackages+=" symlinks"
|
||||
@@ -199,13 +200,23 @@ if [[ "$__LinuxCodeName" == "alpine" ]]; then
|
||||
tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
|
||||
mkdir -p $__RootfsDir/usr/bin
|
||||
cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/testing \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackages
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeMain
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/testing \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeTesting
|
||||
|
||||
rm -r $__ApkToolsDir
|
||||
elif [[ -n $__LinuxCodeName ]]; then
|
||||
qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
|
||||
|
4
external/linker/eng/common/darc-init.ps1
vendored
4
external/linker/eng/common/darc-init.ps1
vendored
@@ -24,13 +24,15 @@ function InstallDarcCli ($darcVersion) {
|
||||
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
||||
}
|
||||
|
||||
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
|
||||
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||
|
||||
Write-Host "Installing Darc CLI version $darcVersion..."
|
||||
Write-Host 'You may need to restart your command window if this is the first dotnet tool you have installed.'
|
||||
if (-not $toolpath) {
|
||||
Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity -g"
|
||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
|
||||
}else {
|
||||
Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity -g --tool-path '$toolpath'"
|
||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath"
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,12 @@ param(
|
||||
[string] $token
|
||||
)
|
||||
|
||||
|
||||
. $PSScriptRoot\pipeline-logging-functions.ps1
|
||||
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/'
|
||||
# Write-PipelineSetVariable will no-op if a variable named $ci is not defined
|
||||
# Since this script is only ever called in AzDO builds, just universally set it
|
||||
$ci = $true
|
||||
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token -IsMultiJobVariable $false
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/' -IsMultiJobVariable $false
|
||||
|
@@ -3,7 +3,7 @@ Param(
|
||||
[Parameter(Mandatory=$true)][string] $gitHubPat, # GitHub personal access token from https://github.com/settings/tokens (no auth scopes needed)
|
||||
[Parameter(Mandatory=$true)][string] $azdoPat, # Azure Dev Ops tokens from https://dev.azure.com/dnceng/_details/security/tokens (code read scope needed)
|
||||
[Parameter(Mandatory=$true)][string] $outputFolder, # Where the graphviz.txt file will be created
|
||||
[string] $darcVersion = '1.1.0-beta.19175.6', # darc's version
|
||||
[string] $darcVersion, # darc's version
|
||||
[string] $graphvizVersion = '2.38', # GraphViz version
|
||||
[switch] $includeToolset # Whether the graph should include toolset dependencies or not. i.e. arcade, optimization. For more about
|
||||
# toolset dependencies see https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#toolset-vs-product-dependencies
|
||||
|
@@ -113,14 +113,16 @@ try {
|
||||
}
|
||||
$toolInstallationFailure = $true
|
||||
} else {
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message $errMsg
|
||||
# We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
|
||||
Write-Host $errMsg
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((Get-Variable 'toolInstallationFailure' -ErrorAction 'SilentlyContinue') -and $toolInstallationFailure) {
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message 'Native tools bootstrap failed'
|
||||
# We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
|
||||
Write-Host 'Native tools bootstrap failed'
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
@@ -105,7 +105,7 @@ try {
|
||||
Write-Error "There are multiple copies of $ToolName in $($ToolInstallDirectory): `n$(@($ToolFilePath | out-string))"
|
||||
exit 1
|
||||
} elseif (@($ToolFilePath).Length -Lt 1) {
|
||||
Write-Error "$ToolName was not found in $ToolFilePath."
|
||||
Write-Host "$ToolName was not found in $ToolFilePath."
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
@@ -9,12 +9,12 @@ Param(
|
||||
[string] $Branch=$env:BUILD_SOURCEBRANCH,
|
||||
[string] $CommitSha=$env:BUILD_SOURCEVERSION,
|
||||
[string] $BuildNumber=$env:BUILD_BUILDNUMBER,
|
||||
[string] $RunCategories="coreclr corefx",
|
||||
[string] $RunCategories="Libraries Runtime",
|
||||
[string] $Csproj="src\benchmarks\micro\MicroBenchmarks.csproj",
|
||||
[string] $Kind="micro",
|
||||
[switch] $Internal,
|
||||
[switch] $Compare,
|
||||
[string] $Configurations="CompilationMode=$CompilationMode"
|
||||
[string] $Configurations="CompilationMode=$CompilationMode RunKind=$Kind"
|
||||
)
|
||||
|
||||
$RunFromPerformanceRepo = ($Repository -eq "dotnet/performance") -or ($Repository -eq "dotnet-performance")
|
||||
@@ -49,7 +49,8 @@ if ($Internal) {
|
||||
$HelixSourcePrefix = "official"
|
||||
}
|
||||
|
||||
$CommonSetupArguments="--frameworks $Framework --queue $Queue --build-number $BuildNumber --build-configs $Configurations"
|
||||
# FIX ME: This is a workaround until we get this from the actual pipeline
|
||||
$CommonSetupArguments="--channel master --queue $Queue --build-number $BuildNumber --build-configs $Configurations --architecture $Architecture"
|
||||
$SetupArguments = "--repository https://github.com/$Repository --branch $Branch --get-perf-hash --commit-sha $CommitSha $CommonSetupArguments"
|
||||
|
||||
if ($RunFromPerformanceRepo) {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user