diff --git a/.github/workflows/pr-analysis.yml b/.github/workflows/pr-analysis.yml new file mode 100644 index 000000000000..b74a99c9799b --- /dev/null +++ b/.github/workflows/pr-analysis.yml @@ -0,0 +1,14 @@ +name: PR Analysis +on: + pull_request: + types: [opened, synchronize, labeled, unlabeled] +permissions: + contents: read + pull-requests: read +jobs: + allowed-labels: + runs-on: ubuntu-latest + steps: + - name: Return error if branch is in lockdown or 'do not merge' label is present + run: echo "Labels on this PR prevent it from being merged. Please contact the repo owners for more information." && exit 1 + if: ${{ contains(github.event.pull_request.labels.*.name, 'Branch Lockdown') || contains(github.event.pull_request.labels.*.name, 'DO NOT MERGE') }} diff --git a/NuGet.config b/NuGet.config index b99b27aa1d76..d980df3d28bf 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,13 +4,15 @@ - + + + - + @@ -18,13 +20,13 @@ - + - + - + @@ -51,15 +53,15 @@ - + - + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ddfd21bca8e8..1fbc8c22abe9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,59 +1,59 @@ - + https://github.com/dotnet/templating - 5d99405601e2672cd496087efc51611f1fc0d860 + 21231eb04bbada374ed06160e7889c161d4e1453 - + https://github.com/dotnet/templating - 5d99405601e2672cd496087efc51611f1fc0d860 + 21231eb04bbada374ed06160e7889c161d4e1453 - + https://github.com/dotnet/templating - 5d99405601e2672cd496087efc51611f1fc0d860 + 21231eb04bbada374ed06160e7889c161d4e1453 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 81cabf2857a01351e5ab578947c7403a5b128ad1 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 - + https://github.com/dotnet/emsdk - ec84e775d21d3b7a6698ec30f7b2a5a9e3acd314 + 6afd7b9f34943078f2e3b747f33350e5fe114269 https://github.com/dotnet/msbuild @@ -111,13 +111,13 @@ https://github.com/dotnet/roslyn bc1c3011064a493b0ca527df6fb7215e2e5cfa96 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c https://github.com/nuget/nuget.client @@ -200,21 +200,21 @@ https://github.com/microsoft/vstest 7855c9b221686104532ebf3380f2d45b3613b369 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 81cabf2857a01351e5ab578947c7403a5b128ad1 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -228,70 +228,70 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 8506c0d82a3737ab3e7edce3976f11065bb57fd2 + 83fc500260851a71b62ed3e92e672021624c28da - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 8506c0d82a3737ab3e7edce3976f11065bb57fd2 + 83fc500260851a71b62ed3e92e672021624c28da - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 8506c0d82a3737ab3e7edce3976f11065bb57fd2 + 83fc500260851a71b62ed3e92e672021624c28da - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 8506c0d82a3737ab3e7edce3976f11065bb57fd2 + 83fc500260851a71b62ed3e92e672021624c28da - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - af059f93ea0cd5b695d098162f0d9b1651adb6a3 + 4d5e32859f7dfaca9102a95d111a49d2aa2dbd8c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c https://github.com/dotnet/razor @@ -306,21 +306,21 @@ https://github.com/dotnet/razor c937db618f8c8739c6fa66ab4ca541344a468fdc - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c https://github.com/dotnet/xdt @@ -354,9 +354,9 @@ dc30cd1ec22f198d658e011c14525d4d65873991 - + https://github.com/dotnet/source-build-reference-packages - d73fc552386797322e84fa9b2ef5eaa5369de83c + b09e26d761555d806f31af68d6fe5dfdeebf6e38 @@ -408,7 +408,7 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 1584e493603cfc4e9b36b77d6d4afe97de6363f9 + 50c4cb9fc31c47f03eac865d7bc518af173b74b7 @@ -437,9 +437,9 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 5535e31a712343a63f5d7d796cd874e563e5ac14 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 25ef4aa38b77974263cb10f6e9cbd10135f17b59 + 8899cb30120d41413065f1b1465cdabefe0a1f9c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -491,22 +491,22 @@ - + https://github.com/dotnet/arcade - a319ada170a54ee87c7a81e3309948e3d3ea7aca + 802042c6e779b73b4edb012ee1d5bae02ec8d41c - + https://github.com/dotnet/arcade - a319ada170a54ee87c7a81e3309948e3d3ea7aca + 802042c6e779b73b4edb012ee1d5bae02ec8d41c - + https://github.com/dotnet/arcade - a319ada170a54ee87c7a81e3309948e3d3ea7aca + 802042c6e779b73b4edb012ee1d5bae02ec8d41c - + https://github.com/dotnet/arcade - a319ada170a54ee87c7a81e3309948e3d3ea7aca + 802042c6e779b73b4edb012ee1d5bae02ec8d41c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 2000178115a6..092dc2bc57b5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -11,7 +11,7 @@ - 8.0.407 + 8.0.408 8.0.400 true @@ -36,7 +36,7 @@ 8.0.0 4.0.0 8.0.0 - 8.0.0-beta.25111.4 + 8.0.0-beta.25164.5 7.0.0-preview.22423.2 8.0.0 4.3.0 @@ -51,29 +51,29 @@ - 8.0.14 - 8.0.14-servicing.25111.18 - 8.0.14 + 8.0.15 + 8.0.15-servicing.25164.13 + 8.0.15 $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) 8.0.2 - 8.0.14 - 8.0.14-servicing.25111.18 + 8.0.15 + 8.0.15-servicing.25164.13 8.0.0 $(MicrosoftExtensionsDependencyModelPackageVersion) 8.0.1 8.0.3 8.0.1 - 8.0.14 + 8.0.15 8.0.0 8.0.0 - 8.0.14 + 8.0.15 8.0.0 8.0.0 8.0.0 8.0.0 8.0.0 8.0.0 - 8.0.1 + 8.0.2 8.0.1 8.0.7 8.0.1 @@ -141,13 +141,13 @@ - 8.0.407 + 8.0.408 $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) - 8.0.407-servicing.25105.9 + 8.0.408-servicing.25163.2 $(MicrosoftTemplateEngineMocksPackageVersion) $(MicrosoftTemplateEngineAbstractionsPackageVersion) $(MicrosoftTemplateEngineMocksPackageVersion) @@ -169,13 +169,13 @@ - 8.0.14 - 8.0.14-servicing.25112.21 - 8.0.14-servicing.25112.21 - 8.0.14-servicing.25112.21 - 8.0.14-servicing.25112.21 - 8.0.14-servicing.25112.21 - 8.0.14 + 8.0.15 + 8.0.15-servicing.25165.5 + 8.0.15-servicing.25165.5 + 8.0.15-servicing.25165.5 + 8.0.15-servicing.25165.5 + 8.0.15-servicing.25165.5 + 8.0.15 @@ -185,7 +185,7 @@ - 8.0.14-servicing.25113.2 + 8.0.15-servicing.25167.9 @@ -213,7 +213,7 @@ 6.12.0 6.1.0 - 8.0.0-beta.25111.4 + 8.0.0-beta.25164.5 4.18.4 1.3.2 8.0.0-beta.23607.1 @@ -229,7 +229,7 @@ - 8.0.14 + 8.0.15 $(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion) 8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`)) diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index dafabdcaef00..f93dc440df0e 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -280,6 +280,8 @@ elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64)$") add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64") add_toolchain_linker_flag("-Wl,--rpath-link=${TIZEN_TOOLCHAIN_PATH}") endif() +elseif(TARGET_ARCH_NAME STREQUAL "s390x") + add_toolchain_linker_flag("--target=${TOOLCHAIN}") elseif(TARGET_ARCH_NAME STREQUAL "x86") if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) add_toolchain_linker_flag("--target=${TOOLCHAIN}") @@ -327,6 +329,8 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$") if(TARGET_ARCH_NAME STREQUAL "armel") add_compile_options(-mfloat-abi=softfp) endif() +elseif(TARGET_ARCH_NAME STREQUAL "s390x") + add_compile_options("--target=${TOOLCHAIN}") elseif(TARGET_ARCH_NAME STREQUAL "x86") if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl) add_compile_options(--target=${TOOLCHAIN}) diff --git a/eng/common/generate-sbom-prep.ps1 b/eng/common/generate-sbom-prep.ps1 index 3e5c1c74a1c5..a0c7d792a76f 100644 --- a/eng/common/generate-sbom-prep.ps1 +++ b/eng/common/generate-sbom-prep.ps1 @@ -4,18 +4,26 @@ Param( . $PSScriptRoot\pipeline-logging-functions.ps1 +# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly +# with their own overwriting ours. So we create it as a sub directory of the requested manifest path. +$ArtifactName = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM" +$SafeArtifactName = $ArtifactName -replace '["/:<>\\|?@*"() ]', '_' +$SbomGenerationDir = Join-Path $ManifestDirPath $SafeArtifactName + +Write-Host "Artifact name before : $ArtifactName" +Write-Host "Artifact name after : $SafeArtifactName" + Write-Host "Creating dir $ManifestDirPath" + # create directory for sbom manifest to be placed -if (!(Test-Path -path $ManifestDirPath)) +if (!(Test-Path -path $SbomGenerationDir)) { - New-Item -ItemType Directory -path $ManifestDirPath - Write-Host "Successfully created directory $ManifestDirPath" + New-Item -ItemType Directory -path $SbomGenerationDir + Write-Host "Successfully created directory $SbomGenerationDir" } else{ Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder." } Write-Host "Updating artifact name" -$artifact_name = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM" -replace '["/:<>\\|?@*"() ]', '_' -Write-Host "Artifact name $artifact_name" -Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$artifact_name" +Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$SafeArtifactName" diff --git a/eng/common/generate-sbom-prep.sh b/eng/common/generate-sbom-prep.sh index d5c76dc827b4..bbb4922151e6 100644 --- a/eng/common/generate-sbom-prep.sh +++ b/eng/common/generate-sbom-prep.sh @@ -14,19 +14,24 @@ done scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" . $scriptroot/pipeline-logging-functions.sh +# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts. +artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM" +safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}" + manifest_dir=$1 -if [ ! -d "$manifest_dir" ] ; then - mkdir -p "$manifest_dir" - echo "Sbom directory created." $manifest_dir +# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly +# with their own overwriting ours. So we create it as a sub directory of the requested manifest path. +sbom_generation_dir="$manifest_dir/$safe_artifact_name" + +if [ ! -d "$sbom_generation_dir" ] ; then + mkdir -p "$sbom_generation_dir" + echo "Sbom directory created." $sbom_generation_dir else Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder." fi -artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM" echo "Artifact name before : "$artifact_name -# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts. -safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}" echo "Artifact name after : "$safe_artifact_name export ARTIFACT_NAME=$safe_artifact_name echo "##vso[task.setvariable variable=ARTIFACT_NAME]$safe_artifact_name" diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 1f035fee73f4..98ccbd7a9c16 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -38,6 +38,7 @@ parameters: enableSbom: true PackageVersion: 7.0.0 BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom jobs: - job: ${{ parameters.name }} @@ -261,4 +262,4 @@ jobs: targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration' artifactName: 'BuildConfiguration' displayName: 'Publish build retry configuration' - continueOnError: true \ No newline at end of file + continueOnError: true diff --git a/eng/common/templates-official/steps/generate-sbom.yml b/eng/common/templates-official/steps/generate-sbom.yml index 1bf43bf807af..daf0957b68d7 100644 --- a/eng/common/templates-official/steps/generate-sbom.yml +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -35,7 +35,7 @@ steps: PackageName: ${{ parameters.packageName }} BuildDropPath: ${{ parameters.buildDropPath }} PackageVersion: ${{ parameters.packageVersion }} - ManifestDirPath: ${{ parameters.manifestDirPath }} + ManifestDirPath: ${{ parameters.manifestDirPath }}/$(ARTIFACT_NAME) ${{ if ne(parameters.IgnoreDirectories, '') }}: AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}' diff --git a/eng/common/templates-official/steps/send-to-helix.yml b/eng/common/templates-official/steps/send-to-helix.yml index 3eb7e2d5f840..22f2501307d4 100644 --- a/eng/common/templates-official/steps/send-to-helix.yml +++ b/eng/common/templates-official/steps/send-to-helix.yml @@ -8,6 +8,7 @@ parameters: HelixConfiguration: '' # optional -- additional property attached to a job HelixPreCommands: '' # optional -- commands to run before Helix work item execution HelixPostCommands: '' # optional -- commands to run after Helix work item execution + HelixProjectArguments: '' # optional -- arguments passed to the build command for helixpublish.proj WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects @@ -24,12 +25,12 @@ parameters: IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net ) Creator: '' # optional -- if the build is external, use this to specify who is sending the job - DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO + DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false steps: - - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj ${{ parameters.HelixProjectArguments }} /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' displayName: ${{ parameters.DisplayNamePrefix }} (Windows) env: BuildConfig: $(_BuildConfig) @@ -59,7 +60,7 @@ steps: SYSTEM_ACCESSTOKEN: $(System.AccessToken) condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) continueOnError: ${{ parameters.continueOnError }} - - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj ${{ parameters.HelixProjectArguments }} /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog displayName: ${{ parameters.DisplayNamePrefix }} (Unix) env: BuildConfig: $(_BuildConfig) diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml index 3eb7e2d5f840..22f2501307d4 100644 --- a/eng/common/templates/steps/send-to-helix.yml +++ b/eng/common/templates/steps/send-to-helix.yml @@ -8,6 +8,7 @@ parameters: HelixConfiguration: '' # optional -- additional property attached to a job HelixPreCommands: '' # optional -- commands to run before Helix work item execution HelixPostCommands: '' # optional -- commands to run after Helix work item execution + HelixProjectArguments: '' # optional -- arguments passed to the build command for helixpublish.proj WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects @@ -24,12 +25,12 @@ parameters: IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net ) Creator: '' # optional -- if the build is external, use this to specify who is sending the job - DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO + DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false steps: - - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj ${{ parameters.HelixProjectArguments }} /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' displayName: ${{ parameters.DisplayNamePrefix }} (Windows) env: BuildConfig: $(_BuildConfig) @@ -59,7 +60,7 @@ steps: SYSTEM_ACCESSTOKEN: $(System.AccessToken) condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) continueOnError: ${{ parameters.continueOnError }} - - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj ${{ parameters.HelixProjectArguments }} /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog displayName: ${{ parameters.DisplayNamePrefix }} (Unix) env: BuildConfig: $(_BuildConfig) diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index a00577ed17aa..82b2798ba307 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -42,7 +42,7 @@ [bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true } # Enable repos to use a particular version of the on-line dotnet-install scripts. -# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1 +# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.ps1 [string]$dotnetInstallScriptVersion = if (Test-Path variable:dotnetInstallScriptVersion) { $dotnetInstallScriptVersion } else { 'v1' } # True to use global NuGet cache instead of restoring packages to repository-local directory. @@ -263,7 +263,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) { if (!(Test-Path $installScript)) { Create-Directory $dotnetRoot $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit - $uri = "https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" + $uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1" Retry({ Write-Host "GET $uri" diff --git a/eng/common/tools.sh b/eng/common/tools.sh index b9b329ce37ff..68db15430230 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -54,7 +54,7 @@ warn_as_error=${warn_as_error:-true} use_installed_dotnet_cli=${use_installed_dotnet_cli:-true} # Enable repos to use a particular version of the on-line dotnet-install scripts. -# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh +# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'} # True to use global NuGet cache instead of restoring packages to repository-local directory. @@ -297,7 +297,7 @@ function with_retries { function GetDotNetInstallScript { local root=$1 local install_script="$root/dotnet-install.sh" - local install_script_url="https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" + local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh" if [[ ! -a "$install_script" ]]; then mkdir -p "$root" diff --git a/global.json b/global.json index ba40e5c7d5b5..9982ec1ef3b5 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.113", + "dotnet": "8.0.114", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" @@ -14,7 +14,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25111.4", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.25111.4" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25164.5", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.25164.5" } } diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index bc5fe1653119..367b8a20e7e8 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -24,6 +24,15 @@ Copyright (c) .NET Foundation. All rights reserved. true + + + + + + + + + Always diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs index 63ba728b5084..5b895304f022 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeHaveAPackageReferenceWithAliases.cs @@ -39,7 +39,7 @@ public void CanBuildProjectWithPackageReferencesWithConflictingTypes() var testAsset = _testAssetsManager.CreateTestProject(testProject); var packagesPaths = packageReferences.Select(e => Path.GetDirectoryName(e.NupkgPath)); - List sources = new List() { NuGetConfigWriter.DotnetCoreBlobFeed }; + List sources = new(); sources.AddRange(packagesPaths); NuGetConfigWriter.Write(testAsset.TestRoot, sources); @@ -85,7 +85,7 @@ public void CanBuildProjectWithMultiplePackageReferencesWithAliases() testProject.SourceFiles[$"{testProject.Name}.cs"] = ClassLibAandBUsage; var testAsset = _testAssetsManager.CreateTestProject(testProject); - List sources = new List() { NuGetConfigWriter.DotnetCoreBlobFeed, Path.GetDirectoryName(packageReferenceA.NupkgPath), Path.GetDirectoryName(packageReferenceB.NupkgPath) }; + List sources = new List() { Path.GetDirectoryName(packageReferenceA.NupkgPath), Path.GetDirectoryName(packageReferenceB.NupkgPath) }; NuGetConfigWriter.Write(testAsset.TestRoot, sources); var buildCommand = new BuildCommand(testAsset) @@ -122,7 +122,7 @@ public void CanBuildProjectWithAPackageReferenceWithMultipleAliases() testProject.SourceFiles[$"{testProject.Name}.cs"] = ClassLibAandBUsage; var testAsset = _testAssetsManager.CreateTestProject(testProject); - List sources = new List() { NuGetConfigWriter.DotnetCoreBlobFeed, Path.GetDirectoryName(packageReferenceA.NupkgPath) }; + List sources = new List() { Path.GetDirectoryName(packageReferenceA.NupkgPath) }; NuGetConfigWriter.Write(testAsset.TestRoot, sources); var buildCommand = new BuildCommand(testAsset) diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs index 2701aa314dd1..c4e87d3e9737 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildANetCoreApp.cs @@ -133,7 +133,7 @@ private void It_targets_the_right_framework( var testAsset = _testAssetsManager.CreateTestProject(testProject, testIdentifier); - NuGetConfigWriter.Write(testAsset.TestRoot, NuGetConfigWriter.DotnetCoreBlobFeed); + NuGetConfigWriter.Write(testAsset.TestRoot); var buildCommand = new BuildCommand(testAsset); diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs index c73131a42541..c1f324d5e510 100644 --- a/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs +++ b/src/Tests/Microsoft.NET.Build.Tests/GivenThatWeWantToGenerateADepsFileForATool.cs @@ -86,7 +86,7 @@ private CommandResult GenerateDepsAndRunTool(TestProject toolProject, [CallerMem var toolProjectInstance = _testAssetsManager.CreateTestProject(toolProject, callingMethod, identifier: toolProject.Name); - NuGetConfigWriter.Write(toolProjectInstance.TestRoot, NuGetConfigWriter.DotnetCoreBlobFeed); + NuGetConfigWriter.Write(toolProjectInstance.TestRoot); // Workaround https://github.com/dotnet/cli/issues/9701 var useBundledNETCoreAppPackage = "/p:UseBundledNETCoreAppPackageVersionAsDefaultNetCorePatchVersion=true"; @@ -118,7 +118,7 @@ private CommandResult GenerateDepsAndRunTool(TestProject toolProject, [CallerMem new XAttribute("Version", "1.0.0"))); }); - List sources = new List() { NuGetConfigWriter.DotnetCoreBlobFeed }; + List sources = new(); sources.Add(nupkgPath); NuGetConfigWriter.Write(toolReferencerInstance.TestRoot, sources); diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToStoreAProjectWithDependencies.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToStoreAProjectWithDependencies.cs index b8b880bc0399..9d59b076dd58 100644 --- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToStoreAProjectWithDependencies.cs +++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToStoreAProjectWithDependencies.cs @@ -119,36 +119,6 @@ public void compose_dependencies_noopt() storeDirectory.Should().OnlyHaveFiles(files_on_disk); } - [Fact] - public void store_nativeonlyassets() - { - TestAsset simpleDependenciesAsset = _testAssetsManager - .CopyTestAsset("UnmanagedStore") - .WithSource(); - - var storeCommand = new ComposeStoreCommand(Log, simpleDependenciesAsset.TestRoot); - - var OutputFolder = Path.Combine(simpleDependenciesAsset.TestRoot, "outdir"); - var WorkingDir = Path.Combine(simpleDependenciesAsset.TestRoot, "w"); - - NuGetConfigWriter.Write(simpleDependenciesAsset.TestRoot, NuGetConfigWriter.DotnetCoreBlobFeed); - - storeCommand - .Execute($"/p:RuntimeIdentifier={_runtimeRid}", $"/p:TargetFramework={_tfm}", $"/p:ComposeWorkingDir={WorkingDir}", $"/p:ComposeDir={OutputFolder}", $"/p:DoNotDecorateComposeDir=true") - .Should() - .Pass(); - - DirectoryInfo storeDirectory = new DirectoryInfo(OutputFolder); - - List files_on_disk = new List { - "artifact.xml", - $"runtime.{_runtimeRid}.microsoft.netcore.coredistools/1.0.1-prerelease-00001/runtimes/{_runtimeRid}/native/{_libPrefix}coredistools{FileConstants.DynamicLibSuffix}", - $"runtime.{_runtimeRid}.microsoft.netcore.coredistools/1.0.1-prerelease-00001/runtimes/{_runtimeRid}/native/coredistools.h" - }; - - storeDirectory.Should().OnlyHaveFiles(files_on_disk); - } - [Fact] public void compose_multifile() { diff --git a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToIgnoreObsoleteDotNetCliToolPackages.cs b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToIgnoreObsoleteDotNetCliToolPackages.cs index b5d8b02faafc..0d2eaca53898 100644 --- a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToIgnoreObsoleteDotNetCliToolPackages.cs +++ b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToIgnoreObsoleteDotNetCliToolPackages.cs @@ -34,7 +34,7 @@ public void It_issues_warning_and_skips_restore_for_obsolete_DotNetCliToolRefere new XAttribute("Include", obsoletePackageId))); }); - NuGetConfigWriter.Write(toolProjectInstance.TestRoot, NuGetConfigWriter.DotnetCoreBlobFeed); + NuGetConfigWriter.Write(toolProjectInstance.TestRoot); RestoreCommand restoreCommand = toolProjectInstance.GetRestoreCommand(Log, toolProject.Name); restoreCommand.Execute("/v:n").Should() diff --git a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToRestoreDotNetCliToolReference.cs b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToRestoreDotNetCliToolReference.cs index 8d820ac26b27..694da217c50f 100644 --- a/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToRestoreDotNetCliToolReference.cs +++ b/src/Tests/Microsoft.NET.Restore.Tests/GivenThatWeWantToRestoreDotNetCliToolReference.cs @@ -50,7 +50,7 @@ public void It_can_restore_with_netcoreapp2_2() DeleteFolder(Path.Combine(TestContext.Current.NuGetCachePath, toolProject.Name.ToLowerInvariant())); DeleteFolder(Path.Combine(TestContext.Current.NuGetCachePath, ".tools", toolProject.Name.ToLowerInvariant())); - NuGetConfigWriter.Write(toolReferenceProjectInstance.TestRoot, NuGetConfigWriter.DotnetCoreBlobFeed, nupkgPath); + NuGetConfigWriter.Write(toolReferenceProjectInstance.TestRoot, nupkgPath); RestoreCommand restoreCommand = toolReferenceProjectInstance.GetRestoreCommand(log: Log, relativePath: toolReferenceProject.Name); diff --git a/src/Tests/Microsoft.NET.TestFramework/NuGetConfigWriter.cs b/src/Tests/Microsoft.NET.TestFramework/NuGetConfigWriter.cs index 6a35fe11677b..5f85ea7c5515 100644 --- a/src/Tests/Microsoft.NET.TestFramework/NuGetConfigWriter.cs +++ b/src/Tests/Microsoft.NET.TestFramework/NuGetConfigWriter.cs @@ -5,7 +5,6 @@ namespace Microsoft.NET.TestFramework { public static class NuGetConfigWriter { - public static readonly string DotnetCoreBlobFeed = "https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json"; public static readonly string AspNetCoreDevFeed = "https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json"; public static void Write(string folder, params string[] nugetSources)