diff --git a/azure-pipelines-PR.yml b/azure-pipelines-PR.yml index adac619969..d937c9fdbe 100644 --- a/azure-pipelines-PR.yml +++ b/azure-pipelines-PR.yml @@ -57,6 +57,8 @@ variables: value: true - name: _WindowsMachineQueueName value: windows.vs2026preview.scout.amd64.open + - name: LinuxMachineQueueName + value: build.azurelinux.3.amd64.open - name: VisualStudioDropName value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber) - name: Codeql.Enabled @@ -140,7 +142,8 @@ stages: # Check FSComp.txt error code sorting and code formatting - job: CheckCodeFormatting pool: - vmImage: $(UbuntuMachineQueueName) + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals $(LinuxMachineQueueName) steps: - checkout: self clean: true @@ -167,7 +170,8 @@ stages: # It is also helping the release notes automation to be up to date with packages versions. - job: Check_Published_Package_Versions pool: - vmImage: $(UbuntuMachineQueueName) + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals $(LinuxMachineQueueName) strategy: maxParallel: 2 matrix: @@ -178,17 +182,8 @@ stages: steps: - checkout: self clean: true - # We first download a publicly available .NET SDK. That one has support for `path` in global.json. dotnet.cmd script can then download a version which is not yet shipped, but matches global.json. - - task: UseDotNet@2 - displayName: install SDK - inputs: - packageType: sdk - version: '10.x' - includePreviewVersions: true - workingDirectory: $(Build.SourcesDirectory) - installationPath: $(Build.SourcesDirectory)/.dotnet - script: ./eng/common/dotnet.sh - - pwsh: ./check.ps1 -project $(_project) + - script: ./check.sh $(_project) workingDirectory: $(Build.SourcesDirectory)/buildtools/checkpackages env: DOTNET_ROLL_FORWARD_TO_PRERELEASE: 1 @@ -605,7 +600,8 @@ stages: # Linux - job: Linux pool: - vmImage: $(UbuntuMachineQueueName) + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals $(LinuxMachineQueueName) timeoutInMinutes: 120 variables: - name: _SignType @@ -777,7 +773,8 @@ stages: # Plain FCS build Linux - job: Plain_Build_Linux pool: - vmImage: $(UbuntuMachineQueueName) + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals $(LinuxMachineQueueName) variables: - name: _BuildConfig value: Debug @@ -910,7 +907,8 @@ stages: commit: f614035b75922aba41ed6a36c2fc986a2171d2b8 buildScript: build.sh displayName: FSharpPlus_Linux - useVmImage: $(UbuntuMachineQueueName) + useVmImage: $(LinuxMachineQueueName) + usePool: $(DncEngPublicBuildPool) - repo: fsprojects/FSharpPlus commit: 2648efe buildScript: build.cmd @@ -928,7 +926,8 @@ stages: commit: 2648efe buildScript: build.sh displayName: FsharpPlus_Net10_Linux - useVmImage: $(UbuntuMachineQueueName) + useVmImage: $(LinuxMachineQueueName) + usePool: $(DncEngPublicBuildPool) - repo: TheAngryByrd/IcedTasks commit: 863bf91cdee93d8c4c875bb5d321dd92eb20d5a9 buildScript: dotnet build IcedTasks.sln diff --git a/buildtools/checkpackages/check.sh b/buildtools/checkpackages/check.sh new file mode 100755 index 0000000000..a3ea101d56 --- /dev/null +++ b/buildtools/checkpackages/check.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -uo pipefail + +if [ $# -ne 1 ]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +project="$1" + +dotnet restore "$project" 2>/dev/null + +if [ $? -eq 0 ]; then + package=$(cat Version.txt) + echo "Package restore succeeded for '${package}', expected to fail." >&2 + echo "This usually means that the package has been already published." >&2 + echo "Please, bump the version to fix this failure." >&2 + exit 1 +fi diff --git a/eng/templates/regression-test-jobs.yml b/eng/templates/regression-test-jobs.yml index 049b9f140e..3b3eaa4b0c 100644 --- a/eng/templates/regression-test-jobs.yml +++ b/eng/templates/regression-test-jobs.yml @@ -20,7 +20,11 @@ jobs: dependsOn: ${{ parameters.dependsOn }} ${{ if item.useVmImage }}: pool: - vmImage: ${{ item.useVmImage }} + ${{ if item.usePool }}: + name: ${{ item.usePool }} + demands: ImageOverride -equals ${{ item.useVmImage }} + ${{ else }}: + vmImage: ${{ item.useVmImage }} ${{ else }}: pool: name: $(DncEngPublicBuildPool)