Changes for core-sdk to move to yaml stages

This commit is contained in:
riarenas 2019-09-10 12:33:20 -07:00
parent 118e4306cb
commit c84ef86d91
23 changed files with 395 additions and 325 deletions

View file

@ -12,300 +12,329 @@ variables:
value: https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json value: https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json
- name: _ArcadePublishBlobFeedUrl - name: _ArcadePublishBlobFeedUrl
value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
- name: _DotNetArtifactsCategory
value: .NETCoreValidation # temporary variable name, so that we can test this change.
- name: _DotNetValidationArtifactsCategory
value: .NETCoreValidation
- name: _PublishUsingPipelines
value: false
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-DotNetCli-Storage - group: DotNet-DotNetCli-Storage
- group: DotNet-Blob-Feed - group: DotNet-Blob-Feed
- name: _PublishUsingPipelines
value: true
jobs: stages:
- template: /eng/build.yml - stage: build
parameters: jobs:
agentOs: Windows_NT - template: /eng/build.yml
pool: parameters:
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: agentOs: Windows_NT
name: NetCorePublic-Pool pool:
queue: buildpool.windows.10.amd64.vs2017.open
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
name: NetCoreInternal-Pool
queue: buildpool.windows.10.amd64.vs2017
timeoutInMinutes: 180
strategy:
matrix:
# Public-only builds
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
Build_Debug_x86: name: NetCorePublic-Pool
_BuildConfig: Debug queue: buildpool.windows.10.amd64.vs2017.open
_BuildArchitecture: x86 ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
_DOTNET_CLI_UI_LANGUAGE: '' name: NetCoreInternal-Pool
_DropSuffix: '' queue: buildpool.windows.10.amd64.vs2017
Build_ES_Debug_x64: timeoutInMinutes: 180
_BuildConfig: Debug strategy:
_BuildArchitecture: x64 matrix:
_DOTNET_CLI_UI_LANGUAGE: es # Public-only builds
_DropSuffix: '' ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
Build_DropSuffix_Release_x64: Build_Debug_x86:
_BuildConfig: Debug
_BuildArchitecture: x86
_DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: ''
Build_ES_Debug_x64:
_BuildConfig: Debug
_BuildArchitecture: x64
_DOTNET_CLI_UI_LANGUAGE: es
_DropSuffix: ''
Build_DropSuffix_Release_x64:
_BuildConfig: Release
_BuildArchitecture: x64
_DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: true
# Internal-only builds
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
Build_Release_x86:
_BuildConfig: Release
_BuildArchitecture: x86
_DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: ''
# Always run builds
Build_Release_x64:
_BuildConfig: Release _BuildConfig: Release
_BuildArchitecture: x64 _BuildArchitecture: x64
_DOTNET_CLI_UI_LANGUAGE: '' _DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: true _DropSuffix: ''
# Internal-only builds _AdditionalBuildParameters: '/p:PublishInternalAsset=true
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
Build_Release_x86: /p:DotNetPublishBlobFeedUrl=$(_ArcadePublishBlobFeedUrl)'
Build_Release_arm:
_BuildConfig: Release _BuildConfig: Release
_BuildArchitecture: x86 _BuildArchitecture: arm
_DOTNET_CLI_UI_LANGUAGE: '' _DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: '' _DropSuffix: ''
# Always run builds
Build_Release_x64:
_BuildConfig: Release
_BuildArchitecture: x64
_DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: ''
_AdditionalBuildParameters: '/p:PublishInternalAsset=true
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
/p:DotNetPublishBlobFeedUrl=$(_ArcadePublishBlobFeedUrl)'
Build_Release_arm:
_BuildConfig: Release
_BuildArchitecture: arm
_DOTNET_CLI_UI_LANGUAGE: ''
_DropSuffix: ''
- template: /eng/build.yml - template: /eng/build.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pool: pool:
name: Hosted Ubuntu 1604 name: Hosted Ubuntu 1604
timeoutInMinutes: 180 timeoutInMinutes: 180
strategy: strategy:
matrix: matrix:
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
Build_Ubuntu_14_04_Release_x64: Build_Ubuntu_14_04_Release_x64:
_BuildConfig: Release _BuildConfig: Release
_DockerParameter: '--docker ubuntu.14.04' _DockerParameter: '--docker ubuntu.14.04'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Ubuntu_16_04_Debug_x64: Build_Ubuntu_16_04_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker ubuntu.16.04' _DockerParameter: '--docker ubuntu.16.04'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Ubuntu_18_04_Debug_x64: Build_Ubuntu_18_04_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker ubuntu.18.04' _DockerParameter: '--docker ubuntu.18.04'
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Fedora_27_Debug_x64: Build_Fedora_27_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker fedora.27' _DockerParameter: '--docker fedora.27'
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Fedora_28_Debug_x64: Build_Fedora_28_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker fedora.28' _DockerParameter: '--docker fedora.28'
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Fedora_29_Debug_x64: Build_Fedora_29_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker fedora.29' _DockerParameter: '--docker fedora.29'
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_OpenSUSE_42_3_Debug_x64: Build_OpenSUSE_42_3_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker opensuse.42.3' _DockerParameter: '--docker opensuse.42.3'
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_CentOS_7_1_Debug_x64: Build_CentOS_7_1_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker centos' _DockerParameter: '--docker centos'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Debian_Jessie_Debug_x64: Build_Debian_Jessie_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker debian' _DockerParameter: '--docker debian'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Rhel_7_2_Release_x64: Build_Rhel_7_2_Release_x64:
_BuildConfig: Release _BuildConfig: Release
_DockerParameter: '--docker rhel' _DockerParameter: '--docker rhel'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Rhel_6_Debug_x64: Build_Rhel_6_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker rhel.6' _DockerParameter: '--docker rhel.6'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id rhel.6-x64' _RuntimeIdentifier: '--runtime-id rhel.6-x64'
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_Arm_Debug: Build_Arm_Debug:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '' _DockerParameter: ''
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm' _RuntimeIdentifier: '--runtime-id linux-arm'
_BuildArchitecture: 'arm' _BuildArchitecture: 'arm'
_DropSuffix: '' _DropSuffix: ''
Build_Arm64_Debug: Build_Arm64_Debug:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '' _DockerParameter: ''
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm64' _RuntimeIdentifier: '--runtime-id linux-arm64'
_BuildArchitecture: 'arm64' _BuildArchitecture: 'arm64'
_DropSuffix: '' _DropSuffix: ''
Build_Linux_musl_Debug_x64: Build_Linux_musl_Debug_x64:
_BuildConfig: Debug _BuildConfig: Debug
_DockerParameter: '--docker alpine.3.6' _DockerParameter: '--docker alpine.3.6'
_LinuxPortable: '' _LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id linux-musl-x64' _RuntimeIdentifier: '--runtime-id linux-musl-x64'
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: '' _DropSuffix: ''
Build_LinuxPortable_NoSuffix_Release_x64: Build_LinuxPortable_NoSuffix_Release_x64:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: true
Build_Arm_NoSuffix_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm'
_BuildArchitecture: 'arm'
_DropSuffix: true
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
Build_Arm_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm'
_BuildArchitecture: 'arm'
_DropSuffix: ''
Build_Arm64_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm64'
_BuildArchitecture: 'arm64'
_DropSuffix: ''
Build_Rhel_6_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker rhel.6'
_LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id rhel.6-x64'
_BuildArchitecture: 'x64'
_DropSuffix: ''
Build_Linux_musl_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker alpine.3.6'
_LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
_BuildArchitecture: 'x64'
_DropSuffix: ''
Build_Linux_Portable_Deb_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker ubuntu.16.04'
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: ''
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
Build_Linux_Portable_Rpm_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker rhel'
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: ''
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
Build_LinuxPortable_Release_x64:
_BuildConfig: Release _BuildConfig: Release
_DockerParameter: '' _DockerParameter: ''
_LinuxPortable: '--linux-portable' _LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '' _RuntimeIdentifier: ''
_BuildArchitecture: 'x64' _BuildArchitecture: 'x64'
_DropSuffix: true
Build_Arm_NoSuffix_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm'
_BuildArchitecture: 'arm'
_DropSuffix: true
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
Build_Arm_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm'
_BuildArchitecture: 'arm'
_DropSuffix: '' _DropSuffix: ''
Build_Arm64_Release:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: '--runtime-id linux-arm64'
_BuildArchitecture: 'arm64'
_DropSuffix: ''
Build_Rhel_6_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker rhel.6'
_LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id rhel.6-x64'
_BuildArchitecture: 'x64'
_DropSuffix: ''
Build_Linux_musl_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker alpine.3.6'
_LinuxPortable: ''
_RuntimeIdentifier: '--runtime-id linux-musl-x64'
_BuildArchitecture: 'x64'
_DropSuffix: ''
Build_Linux_Portable_Deb_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker ubuntu.16.04'
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: ''
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
Build_Linux_Portable_Rpm_Release_x64:
_BuildConfig: Release
_DockerParameter: '--docker rhel'
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: ''
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
_AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false'
Build_LinuxPortable_Release_x64:
_BuildConfig: Release
_DockerParameter: ''
_LinuxPortable: '--linux-portable'
_RuntimeIdentifier: ''
_BuildArchitecture: 'x64'
_DropSuffix: ''
- template: /eng/build.yml - template: /eng/build.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
pool: pool:
name: Hosted macOS name: Hosted macOS
timeoutInMinutes: 180 timeoutInMinutes: 180
strategy: strategy:
matrix: matrix:
Build_Release: Build_Release:
_BuildConfig: Release _BuildConfig: Release
# https://github.com/dotnet/core-sdk/issues/248 # https://github.com/dotnet/core-sdk/issues/248
# - template: /eng/build.yml # - template: /eng/build.yml
# parameters: # parameters:
# agentOs: FreeBSD # agentOs: FreeBSD
# queue: # queue:
# name: dnceng-freebsd-internal # name: dnceng-freebsd-internal
# timeoutInMinutes: 180 # timeoutInMinutes: 180
# matrix: # matrix:
# Build_Release: # Build_Release:
# _BuildConfig: Release # _BuildConfig: Release
# _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true'
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
dependsOn:
- Windows_NT
- Linux
- Darwin
publishUsingPipelines: true
pool:
vmImage: vs2017-win2016
# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
# - template: /eng/common/templates/job/generate-graph-files.yml
# parameters:
# continueOnError: true
# includeToolset: false
# dependsOn:
# - Asset_Registry_Publish
# pool:
# vmImage: vs2017-win2016
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- job: Copy_SDK_To_Latest - template: eng\common\templates\post-build\post-build.yml
parameters:
# Symbol validation isn't being very reliable lately. This should be enabled back
# once this issue is resolved: https://github.com/dotnet/arcade/issues/2871
enableSymbolValidation: false
# This repo doesn't produce any signed packages.
enableSigningValidation: false
publishInstallersAndChecksums: true
enableSourceLinkValidation: false # Disabling for testing in internal-only branc
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), not(contains(variables['Build.SourceBranch'], 'refs/heads/internal/'))) }}:
- stage: copy_to_latest
displayName: Copy to latest
dependsOn: dependsOn:
- Windows_NT # This will run only after all the publishing stages have run and have been validated.
- Linux # These stages are introduced in the eng/common/templates/post-build/channels YAML templates
- Darwin - NetCore_Dev31_Publish
pool: - NetCore_Dev30_Publish
name: Hosted VS2017 - NetCore_Dev5_Publish
condition: succeeded() - NetCore_Release30_Publish
variables: - NetCore_Release31_Publish
- group: DotNet-DotNetCli-Storage - PVR_Publish
steps: jobs:
- script: eng/CopyToLatest.cmd - job: Copy_SDK_To_Latest
/p:DotnetPublishSdkAssetsBlobFeedUrl=$(_PublishBlobFeedUrl)
/p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key)
/p:DotnetPublishChecksumsBlobFeedUrl=$(_PublishChecksumsBlobFeedUrl)
/p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key)
displayName: Copy to latest
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
dependsOn:
- Windows_NT
- Linux
- Darwin
enablePublishBuildArtifacts: true
pool: pool:
vmImage: vs2017-win2016 name: Hosted VS2017
condition: succeeded()
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: variables:
- template: /eng/common/templates/job/generate-graph-files.yml - group: DotNet-DotNetCli-Storage
parameters: steps:
continueOnError: true - script: eng/CopyToLatest.cmd
includeToolset: false /p:DotnetPublishSdkAssetsBlobFeedUrl=https://dotnetcli.blob.core.windows.net/riarenas/index.json
dependsOn: /p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key)
- Asset_Registry_Publish /p:DotnetPublishChecksumsBlobFeedUrl=https://dotnetclichecksums.blob.core.windows.net/riarenas/index.json
pool: /p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key)
vmImage: vs2017-win2016 displayName: Copy to latest

View file

@ -46,7 +46,7 @@ done
dockerbuild() dockerbuild()
{ {
BUILD_COMMAND=/opt/code/run-build.sh $DIR/eng/dockerrun.sh --non-interactive "$@" BUILD_COMMAND=$DIR/run-build.sh $DIR/eng/dockerrun.sh --non-interactive "$@"
} }
# Check if we need to build in docker # Check if we need to build in docker

View file

@ -9,9 +9,7 @@
<BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath> <BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath>
<BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(Product)</BlobStoragePartialRelativePath> <BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(Product)</BlobStoragePartialRelativePath>
<ChecksumsFeedUrl>$(DotnetPublishChecksumsBlobFeedUrl)</ChecksumsFeedUrl> <ChecksumsFeedUrl>$(DotnetPublishChecksumsBlobFeedUrl)</ChecksumsFeedUrl>
<ChecksumsAccountKey>$(DotNetPublishChecksumsBlobFeedKey)</ChecksumsAccountKey>
<SdkAssetsFeedUrl>$(DotnetPublishSdkAssetsBlobFeedUrl)</SdkAssetsFeedUrl> <SdkAssetsFeedUrl>$(DotnetPublishSdkAssetsBlobFeedUrl)</SdkAssetsFeedUrl>
<SdkAssetsAzureAccountKey>$(DotNetPublishSdkAssetsBlobFeedKey)</SdkAssetsAzureAccountKey>
<PublishSdkAssetsAndChecksumsToBlob>false</PublishSdkAssetsAndChecksumsToBlob> <PublishSdkAssetsAndChecksumsToBlob>false</PublishSdkAssetsAndChecksumsToBlob>
<PublishSdkAssetsAndChecksumsToBlob Condition=" '$(ChecksumsFeedUrl)' != '' and '$(SdkAssetsFeedUrl)' != '' ">true</PublishSdkAssetsAndChecksumsToBlob> <PublishSdkAssetsAndChecksumsToBlob Condition=" '$(ChecksumsFeedUrl)' != '' and '$(SdkAssetsFeedUrl)' != '' ">true</PublishSdkAssetsAndChecksumsToBlob>
@ -33,6 +31,9 @@
<!-- Property AssetManifestFilePath will be reassigned by the Arcade SDK, so use a different name (DotNetAssetManifestFilePath) --> <!-- Property AssetManifestFilePath will be reassigned by the Arcade SDK, so use a different name (DotNetAssetManifestFilePath) -->
<DotNetAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName).xml</DotNetAssetManifestFilePath> <DotNetAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName).xml</DotNetAssetManifestFilePath>
<ChecksumsAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(ChecksumsAssetManifestFileName).xml</ChecksumsAssetManifestFilePath> <ChecksumsAssetManifestFilePath>$(ArtifactsLogDir)AssetManifest\$(ChecksumsAssetManifestFileName).xml</ChecksumsAssetManifestFilePath>
<DotnetTempWorkingDirectory>$(ArtifactsDir)..\DotnetAssetsTmpDir\$([System.Guid]::NewGuid())</DotnetTempWorkingDirectory>
<ChecksumTempWorkingDirectory>$(ArtifactsDir)..\ChecksumAssetsTmpDir\$([System.Guid]::NewGuid())</ChecksumTempWorkingDirectory>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -45,9 +46,7 @@
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.msi" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.msi" />
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.nupkg" />
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.cab" /> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.cab" />
<SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.svg" Condition=" '$(PublishBinariesAndBadge)' == 'true' "> <SdkAssetsToPublish Include="$(ArtifactsShippingPackagesDir)*.svg" Condition=" '$(PublishBinariesAndBadge)' == 'true' " />
<ExcludeFromManifest>true</ExcludeFromManifest>
</SdkAssetsToPublish>
<SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" /> <SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.nupkg" />
<SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.swr" /> <SdkNonShippingAssetsToPublish Include="$(ArtifactsNonShippingPackagesDir)*.swr" />
<CheckSumsToPublish Include="$(ArtifactsShippingPackagesDir)*.sha" /> <CheckSumsToPublish Include="$(ArtifactsShippingPackagesDir)*.sha" />
@ -74,9 +73,10 @@
</ChecksumsToPushToBlobFeed> </ChecksumsToPushToBlobFeed>
</ItemGroup> </ItemGroup>
<PushToBlobFeed <MakeDir Directories="$(DotnetTempWorkingDirectory)"/>
ExpectedFeedUrl="$(SdkAssetsFeedUrl)" <MakeDir Directories="$(ChecksumTempWorkingDirectory)"/>
AccountKey="$(SdkAssetsAzureAccountKey)"
<PushToAzureDevOpsArtifacts
ItemsToPush="@(SdkAssetsToPushToBlobFeed)" ItemsToPush="@(SdkAssetsToPushToBlobFeed)"
ManifestBuildData="Location=$(SdkAssetsFeedUrl)" ManifestBuildData="Location=$(SdkAssetsFeedUrl)"
ManifestRepoUri="$(BUILD_REPOSITORY_URI)" ManifestRepoUri="$(BUILD_REPOSITORY_URI)"
@ -84,11 +84,10 @@
ManifestBuildId="$(BUILD_BUILDNUMBER)" ManifestBuildId="$(BUILD_BUILDNUMBER)"
ManifestCommit="$(BUILD_SOURCEVERSION)" ManifestCommit="$(BUILD_SOURCEVERSION)"
AssetManifestPath="$(DotNetAssetManifestFilePath)" AssetManifestPath="$(DotNetAssetManifestFilePath)"
PublishFlatContainer="true" /> PublishFlatContainer="true"
AssetsTemporaryDirectory="$(DotnetTempWorkingDirectory)" />
<PushToBlobFeed <PushToAzureDevOpsArtifacts
ExpectedFeedUrl="$(ChecksumsFeedUrl)"
AccountKey="$(ChecksumsAccountKey)"
ItemsToPush="@(ChecksumsToPushToBlobFeed)" ItemsToPush="@(ChecksumsToPushToBlobFeed)"
ManifestBuildData="Location=$(ChecksumsFeedUrl)" ManifestBuildData="Location=$(ChecksumsFeedUrl)"
ManifestRepoUri="$(BUILD_REPOSITORY_URI)" ManifestRepoUri="$(BUILD_REPOSITORY_URI)"
@ -96,6 +95,23 @@
ManifestBuildId="$(BUILD_BUILDNUMBER)" ManifestBuildId="$(BUILD_BUILDNUMBER)"
ManifestCommit="$(BUILD_SOURCEVERSION)" ManifestCommit="$(BUILD_SOURCEVERSION)"
AssetManifestPath="$(ChecksumsAssetManifestFilePath)" AssetManifestPath="$(ChecksumsAssetManifestFilePath)"
PublishFlatContainer="true"/> PublishFlatContainer="true"
AssetsTemporaryDirectory="$(ChecksumTempWorkingDirectory)" />
<Copy
SourceFiles="$(DotNetAssetManifestFilePath)"
DestinationFolder="$(DotnetTempWorkingDirectory)\$(AssetManifestFileName)" />
<Copy
SourceFiles="$(ChecksumsAssetManifestFilePath)"
DestinationFolder="$(ChecksumTempWorkingDirectory)\$(ChecksumsAssetManifestFileName)" />
<Message
Text="##vso[artifact.upload containerfolder=AssetManifests;artifactname=AssetManifests]$(DotnetTempWorkingDirectory)/$(AssetManifestFileName)"
Importance="high" />
<Message
Text="##vso[artifact.upload containerfolder=AssetManifests;artifactname=AssetManifests]$(ChecksumTempWorkingDirectory)/$(ChecksumsAssetManifestFileName)"
Importance="high" />
</Target> </Target>
</Project> </Project>

View file

@ -14,13 +14,19 @@ parameters:
# Job timeout # Job timeout
timeoutInMinutes: 180 timeoutInMinutes: 180
# Publish using pipelines
enablePublishUsingPipelines: true
phases: phases:
- template: /eng/common/templates/job/job.yml - template: /eng/common/templates/job/job.yml
parameters: parameters:
name: ${{ parameters.agentOs }} name: ${{ parameters.agentOs }}
${{ if eq(parameters.agentOs, 'Windows_NT') }}: ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
enableMicrobuild: true enableMicrobuild: true
enablePublishBuildArtifacts: true
enablePublishBuildAssets: true enablePublishBuildAssets: true
enablePublishTestResults: true
enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}}
enableTelemetry: true enableTelemetry: true
helixRepo: dotnet/core-sdk helixRepo: dotnet/core-sdk
pool: ${{ parameters.pool }} pool: ${{ parameters.pool }}
@ -38,20 +44,22 @@ phases:
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-Symbol-Server-PATs - group: DotNet-Symbol-Server-PATs
- group: DotNet-HelixApi-Access - group: DotNet-HelixApi-Access
- group: DotNet-Blob-Feed
- _DotNetPublishToBlobFeed: true - _DotNetPublishToBlobFeed: true
- _PushToVSFeed: true - _PushToVSFeed: true
- _SignType: real - _SignType: real
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER) - _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed) /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
/p:DotNetPublishBlobFeedUrl=$(PB_PublishBlobFeedUrl)
/p:DotnetPublishSdkAssetsBlobFeedUrl=$(_PublishBlobFeedUrl) /p:DotnetPublishSdkAssetsBlobFeedUrl=$(_PublishBlobFeedUrl)
/p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key)
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
/p:PB_PublishType=blob /p:PB_PublishType=blob
/p:DotnetPublishChecksumsBlobFeedUrl=$(_PublishChecksumsBlobFeedUrl) /p:DotnetPublishChecksumsBlobFeedUrl=$(_PublishChecksumsBlobFeedUrl)
/p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key)
/p:DotNetSignType=real /p:DotNetSignType=real
/p:TeamName=$(_TeamName) /p:TeamName=$(_TeamName)
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
steps: steps:
- checkout: self - checkout: self

View file

@ -21,6 +21,7 @@ RUN chmod -R a+rwx /home
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -21,5 +21,6 @@ RUN chmod -R 755 /usr/bin/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -27,5 +27,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -26,5 +26,6 @@ RUN chmod -R a+rwx /home
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -25,4 +25,5 @@ RUN chmod -R a+rwx /home
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -29,4 +29,5 @@ RUN chmod -R a+rwx /home
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -26,4 +26,5 @@ RUN chmod -R a+rwx /home
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -26,4 +26,5 @@ RUN chmod -R a+rwx /home
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -21,5 +21,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -46,5 +46,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -45,5 +45,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -26,6 +26,7 @@ USER ${USER_ID}
# Set library path to make CURL and ICU libraries that are in /usr/local/lib visible # Set library path to make CURL and ICU libraries that are in /usr/local/lib visible
ENV LD_LIBRARY_PATH /usr/local/lib ENV LD_LIBRARY_PATH /usr/local/lib
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -19,5 +19,6 @@ RUN chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -59,5 +59,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -52,5 +52,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -59,5 +59,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -27,5 +27,6 @@ RUN chmod -R 755 /usr/lib/sudo
# Set user to the one we just created # Set user to the one we just created
USER ${USER_ID} USER ${USER_ID}
# Set working directory # Set working directory
WORKDIR /opt/code ARG WORK_DIR
WORKDIR ${WORK_DIR}

View file

@ -19,7 +19,7 @@ Write-Host "Additional args: $additionalArgs"
$dockerFile = Resolve-Path (Join-Path $RepoRoot "eng\docker\$dockerImageName") $dockerFile = Resolve-Path (Join-Path $RepoRoot "eng\docker\$dockerImageName")
docker build --build-arg USER_ID=1000 -t "$dockerContainerTag" $dockerFile docker build --build-arg WORK_DIR=$RepoRoot --build-arg USER_ID=1000 -t "$dockerContainerTag" $dockerFile
$interactiveFlag = "-i" $interactiveFlag = "-i"
if ($noninteractive) if ($noninteractive)
@ -31,7 +31,7 @@ if ($noninteractive)
docker run $interactiveFlag -t --rm --sig-proxy=true ` docker run $interactiveFlag -t --rm --sig-proxy=true `
--name "$dockerContainerName" ` --name "$dockerContainerName" `
-v "${RepoRoot}:/opt/code" ` -v "${RepoRoot}:${RepoRoot}" `
-e DOTNET_CORESDK_IGNORE_TAR_EXIT_CODE=1 ` -e DOTNET_CORESDK_IGNORE_TAR_EXIT_CODE=1 `
-e CHANNEL ` -e CHANNEL `
-e DOTNET_BUILD_SKIP_CROSSGEN ` -e DOTNET_BUILD_SKIP_CROSSGEN `
@ -57,4 +57,4 @@ docker run $interactiveFlag -t --rm --sig-proxy=true `
-e EXTERNALRESTORESOURCES ` -e EXTERNALRESTORESOURCES `
-e ARCADE_PARTITION="${dockerImageName}" ` -e ARCADE_PARTITION="${dockerImageName}" `
$dockerContainerTag ` $dockerContainerTag `
/opt/code/run-build.sh @additionalArgs ${RepoRoot}/run-build.sh @additionalArgs

View file

@ -39,7 +39,7 @@ while [[ $# > 0 ]]; do
echo "Options:" echo "Options:"
echo " <Dockerfile> The path to the Dockerfile to use to create the build container" echo " <Dockerfile> The path to the Dockerfile to use to create the build container"
echo " <ImageName> The name of an existing Dockerfile folder under eng/docker to use as the Dockerfile" echo " <ImageName> The name of an existing Dockerfile folder under eng/docker to use as the Dockerfile"
echo " <Command> The command to run once inside the container (/opt/code is mapped to the repo root; defaults to nothing, which runs the default shell)" echo " <Command> The command to run once inside the container (repo root is mapped to DOCKER_HOST_SHARE_DIR; defaults to nothing, which runs the default shell)"
exit 0 exit 0
;; ;;
*) *)
@ -107,7 +107,7 @@ fi
# Build the docker container (will be fast if it is already built) # Build the docker container (will be fast if it is already built)
echo "Building Docker Container using Dockerfile: $DOCKERFILE" echo "Building Docker Container using Dockerfile: $DOCKERFILE"
docker build --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE docker build --build-arg WORK_DIR=$DOCKER_HOST_SHARE_DIR --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE
# Run the build in the container # Run the build in the container
echo "Launching build in Docker Container" echo "Launching build in Docker Container"
@ -118,7 +118,7 @@ echo "Using code from: $DOCKER_HOST_SHARE_DIR"
# Note: passwords/keys should not be passed in the environment # Note: passwords/keys should not be passed in the environment
docker run $INTERACTIVE -t --rm --sig-proxy=true \ docker run $INTERACTIVE -t --rm --sig-proxy=true \
--name $DOTNET_BUILD_CONTAINER_NAME \ --name $DOTNET_BUILD_CONTAINER_NAME \
-v $DOCKER_HOST_SHARE_DIR:/opt/code \ -v $DOCKER_HOST_SHARE_DIR:$DOCKER_HOST_SHARE_DIR \
-e CHANNEL \ -e CHANNEL \
-e DOTNET_BUILD_SKIP_CROSSGEN \ -e DOTNET_BUILD_SKIP_CROSSGEN \
-e PUBLISH_TO_AZURE_BLOB \ -e PUBLISH_TO_AZURE_BLOB \