parameters:
  - name: configuration
    type: string
    default: 'Release'
  - name: platform
    type: string
    default: 'x64'
  - name: additionalBuildArguments
    type: string
    default: '-p:RestorePackagesConfig=true -m'
  - name: enableCaching
    type: boolean
    default: false

jobs:
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
  displayName: Build ${{ parameters.platform }} ${{ parameters.configuration }}
  dependsOn: Precheck
  condition: and(succeeded(),ne(dependencies.Precheck.outputs['verifyBuildRequest.skipBuild'], 'Yes'))
  variables:
    BuildConfiguration: ${{ parameters.configuration }}
    BuildPlatform: ${{ parameters.platform }}
    NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=${{ parameters.platform }} # Required for nuget to work due to self contained
    NODE_OPTIONS: --max_old_space_size=16384
  pool:
    demands: ImageOverride -equals SHINE-VS17-Latest
    ${{ if eq(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
      name: SHINE-OSS-L
    ${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
      name: SHINE-INT-L
  timeoutInMinutes: 120
  strategy:
    maxParallel: 10
  steps:
  - template: build-powertoys-steps.yml
    parameters:
      additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
      enableCaching: ${{ parameters.enableCaching }}

  # It appears that the Component Governance build task that gets automatically injected stopped working
  # when we renamed our main branch.
  - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
    displayName: 'Component Detection'
    condition: and(succeededOrFailed(), not(eq(variables['Build.Reason'], 'PullRequest')))