diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 28fae2b366ee2ec5208b6d748d146e32851ef10b..114fd3f1576d26c5b54f574c46a0fc0f42ac2329 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -20,7 +20,15 @@ pr: variables: - name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE value: true - +- name: _TeamName + value: AspNetCore +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: _BuildArgs + value: /p:TeamName=$(_TeamName) + /p:OfficialBuildId=$(Build.BuildNumber) +- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + - name: _BuildArgs + value: '' jobs: - template: jobs/default-build.yml parameters: @@ -50,18 +58,36 @@ jobs: # if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing. # The sign settings have been configured to - - script: ./eng/scripts/cibuild.cmd -BuildNative -arch x64 /p:DisableCodeSigning=true /bl:artifacts/log/build.x64.binlog + - script: ./eng/scripts/cibuild.cmd + -arch x64 + -BuildNative + /p:DisableCodeSigning=true + /bl:artifacts/log/build.x64.binlog + $(_BuildArgs) displayName: Build x64 # TODO: make it possible to build for one Windows architecture at a time # This is going to actually build x86 native assets. See https://github.com/aspnet/AspNetCore/issues/7196 # Build the x86 shared framework # Set DisableSignCheck because we'll run sign check in an explicit step after installers build - - script: ./eng/scripts/cibuild.cmd -arch x86 -NoRestore -BuildNative /t:BuildSharedFx /p:DisableCodeSigning=true /bl:artifacts/log/build.x86.binlog + - script: ./eng/scripts/cibuild.cmd + -arch x86 + -NoRestore + -BuildNative + /t:BuildSharedFx + /p:DisableCodeSigning=true + /bl:artifacts/log/build.x86.binlog + $(_BuildArgs) displayName: Build x86 # This is in a separate build step with -forceCoreMsbuild to workaround MAX_PATH limitations - https://github.com/Microsoft/msbuild/issues/53 - - script: ./build.cmd -ci -sign -forceCoreMsbuild /p:DisableCodeSigning=true -projects ./src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj + - script: ./build.cmd + -ci + -sign + -forceCoreMsbuild + /p:DisableCodeSigning=true + -projects ./src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj + $(_BuildArgs) displayName: Build SiteExtension # Remove all task build output @@ -71,15 +97,33 @@ jobs: # This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If https://github.com/dotnet/arcade/issues/1957 is resolved, # consider running code-signing inline with the other previous steps. # Sign check is disabled because it is run in a separate step below, after installers are built. - - script: ./build.cmd -ci -sign -NoRestore /t:CodeSign /p:SignType=$(_SignType) /p:DisableSignCheck=true /bl:artifacts/log/build.codesign.binlog + - script: ./build.cmd + -ci + -sign + -NoRestore + /t:CodeSign + /p:SignType=$(_SignType) + /p:DisableSignCheck=true + /bl:artifacts/log/build.codesign.binlog + $(_BuildArgs) displayName: Code sign packages # Windows installers bundle both x86 and x64 assets - - powershell: ./src/Installers/Windows/build.ps1 -ci /p:SignType=$(_SignType) + - powershell: ./src/Installers/Windows/build.ps1 + -ci + /p:SignType=$(_SignType) + $(_BuildArgs) displayName: Build Installers # Run sign check to verify everything was code signed. - - script: ./build.cmd -ci -sign -NoRestore /t:SignCheck /p:SignType=$(_SignType) /bl:artifacts/log/build.signcheck.binlog + - script: ./build.cmd + -ci + -sign + -NoRestore + /t:SignCheck + /p:SignType=$(_SignType) + /bl:artifacts/log/build.signcheck.binlog + $(_BuildArgs) displayName: Run sign check condition: eq(variables['_SignType'], 'real') @@ -104,7 +148,12 @@ jobs: jobDisplayName: "Build: Windows ARM" agentOs: Windows buildScript: ./eng/scripts/cibuild.cmd - buildArgs: -arch arm -NoBuildNodeJS -NoBuildJava /p:SignType=$(_SignType) /bl:artifacts/log/build.win-arm.binlog + buildArgs: -arch arm + -NoBuildNodeJS + -NoBuildJava + /p:SignType=$(_SignType) + /bl:artifacts/log/build.win-arm.binlog + $(_BuildArgs) installNodeJs: false installJdk: false afterBuild: @@ -129,7 +178,10 @@ jobs: jobDisplayName: "Build: macOS" agentOs: macOs buildScript: ./eng/scripts/cibuild.sh - buildArgs: --no-build-nodejs --no-build-java /bl:artifacts/log/build.macos.binlog + buildArgs: --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.macos.binlog + $(_BuildArgs) installNodeJs: false afterBuild: # Remove packages that are not rid-specific. @@ -158,7 +210,12 @@ jobs: agentOs: Linux installNodeJs: false steps: - - script: ./eng/scripts/cibuild.sh --arch x64 --no-build-nodejs --no-build-java /bl:artifacts/log/build.lin-x64.binlog + - script: ./eng/scripts/cibuild.sh + --arch x64 + --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.linux-x64.binlog + $(_BuildArgs) displayName: Run cibuild.sh - script: | rm -rf .dotnet/ @@ -172,7 +229,8 @@ jobs: /t:BuildSharedFx \ /p:BuildRuntimeArchive=false \ /p:LinuxInstallerType=deb \ - /bl:artifacts/log/build.deb.binlog + /bl:artifacts/log/build.deb.binlog \ + $(_BuildArgs) displayName: Build Debian installers - script: | rm -rf .dotnet/ @@ -186,7 +244,8 @@ jobs: /t:BuildSharedFx \ /p:BuildRuntimeArchive=false \ /p:LinuxInstallerType=rpm \ - /bl:artifacts/log/build.rpm.binlog + /bl:artifacts/log/build.rpm.binlog \ + $(_BuildArgs) displayName: Build RPM installers afterBuild: # Remove packages that are not rid-specific. @@ -214,7 +273,11 @@ jobs: jobDisplayName: "Build: Linux ARM" agentOs: Linux buildScript: ./eng/scripts/cibuild.sh - buildArgs: --arch arm --no-build-nodejs --no-build-java /bl:artifacts/log/build.lin-arm.binlog + buildArgs: --arch arm + --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.linux-arm.binlog + $(_BuildArgs) installNodeJs: false afterBuild: # Remove packages that are not rid-specific. @@ -242,7 +305,11 @@ jobs: jobDisplayName: "Build: Linux ARM64" agentOs: Linux buildScript: ./eng/scripts/cibuild.sh - buildArgs: --arch arm64 --no-build-nodejs --no-build-java /bl:artifacts/log/build.arm64.binlog + buildArgs: --arch arm64 + --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.arm64.binlog + $(_BuildArgs) installNodeJs: false afterBuild: # Remove packages that are not rid-specific. @@ -270,7 +337,16 @@ jobs: jobDisplayName: "Build: Linux Musl x64" agentOs: Linux buildScript: ./dockerbuild.sh alpine - buildArgs: --ci --pack --all -e KOREBUILD_SKIP_INSTALL_NETFX=0 --arch x64 --os-name linux-musl --no-build-nodejs --no-build-java /bl:artifacts/log/build.musl.binlog + buildArgs: --ci + --pack + --all + -e KOREBUILD_SKIP_INSTALL_NETFX=0 + --arch x64 + --os-name linux-musl + --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.musl.binlog + $(_BuildArgs) installNodeJs: false afterBuild: # Remove packages that are not rid-specific. @@ -298,7 +374,16 @@ jobs: jobDisplayName: "Build: Linux Musl ARM64" agentOs: Linux buildScript: ./dockerbuild.sh ubuntu-alpine37 - buildArgs: --ci --pack --all -e KOREBUILD_SKIP_INSTALL_NETFX=0 --arch arm64 --os-name linux-musl --no-build-nodejs --no-build-java /bl:artifacts/log/build.musl.binlog + buildArgs: --ci + --pack + --all + -e KOREBUILD_SKIP_INSTALL_NETFX=0 + --arch arm64 + --os-name linux-musl + --no-build-nodejs + --no-build-java + /bl:artifacts/log/build.musl.binlog + $(_BuildArgs) installNodeJs: false afterBuild: # Remove packages that are not rid-specific. diff --git a/build/CodeSign.targets b/build/CodeSign.targets index f3c6a1d002d40646f1bfc71aedc4329eefa28958..883898ee854aa8d557becb5b343dfc9756e497e7 100644 --- a/build/CodeSign.targets +++ b/build/CodeSign.targets @@ -6,9 +6,9 @@ <ItemGroup> <!-- Configures signcheck to inspect well-known folders for signed content. --> - <SignCheckDirectory Include="$(ArtifactsPackagesDir)" /> - <SignCheckDirectory Include="$(InstallersOutputPath)" /> - <SignCheckDirectory Include="$(VisualStudioSetupOutputPath)" /> + <SignCheckDirectory Include="$(ArtifactsPackagesDir.TrimEnd('\'))" /> + <SignCheckDirectory Include="$(InstallersOutputPath.TrimEnd('\'))" /> + <SignCheckDirectory Include="$(VisualStudioSetupOutputPath.TrimEnd('\'))" /> <!-- KoreBuild by default scans everything in artifacts/, but this causes problems because we put unsigned content in artifacts/obj/ and bin/ which can be ignored. --> <SignCheckDirectory Remove="$(ArtifactsDir)" /> </ItemGroup>