## @file
# File templates/pr-gate-build-job.yml
#
# template file used to build supported packages.
#
# Copyright (c) Microsoft Corporation.
# Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
##

parameters:
  tool_chain_tag: ''
  vm_image: ''
  arch_list: ''
  extra_install_step: []
  usePythonVersion: ''
  container: ''

# Build step
jobs:

- job: Build_${{ parameters.tool_chain_tag }}
  timeoutInMinutes: 120
  #Use matrix to speed up the build process
  strategy:
    matrix:
      ${{ if eq(parameters.tool_chain_tag, 'GCC5') }}:
        TARGET_GCC_ONLY:
          Build.Pkgs: 'EmbeddedPkg'
          Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_ARM_ARMPLATFORM:
        Build.Pkgs: 'ArmPkg,ArmPlatformPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_MDE_CPU:
        Build.Pkgs: 'MdePkg,UefiCpuPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_MDEMODULE_DEBUG:
        Build.Pkgs: 'MdeModulePkg'
        Build.Targets: 'DEBUG,NOOPT'
      TARGET_MDEMODULE_RELEASE:
        Build.Pkgs: 'MdeModulePkg'
        Build.Targets: 'RELEASE,NO-TARGET'
      TARGET_NETWORK:
        Build.Pkgs: 'NetworkPkg,RedfishPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_OTHER:
        Build.Pkgs: 'PcAtChipsetPkg,PrmPkg,ShellPkg,SourceLevelDebugPkg,StandaloneMmPkg,SignedCapsulePkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_FMP_FAT_TEST:
        Build.Pkgs: 'FmpDevicePkg,FatPkg,UnitTestFrameworkPkg,DynamicTablesPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_CRYPTO_DEBUG:
        Build.Pkgs: 'CryptoPkg'
        Build.Targets: 'DEBUG,NOOPT'
      TARGET_CRYPTO_RELEASE:
        Build.Pkgs: 'CryptoPkg'
        Build.Targets: 'RELEASE,NO-TARGET'
      TARGET_FSP:
        Build.Pkgs: 'IntelFsp2Pkg,IntelFsp2WrapperPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_SECURITY:
        Build.Pkgs: 'SecurityPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_UEFIPAYLOAD:
        Build.Pkgs: 'UefiPayloadPkg'
        Build.Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
      TARGET_PLATFORMS:
        # For Platforms only check code. Leave it to Platform CI
        # to build them.
        Build.Pkgs: 'ArmVirtPkg,EmulatorPkg,OvmfPkg'
        Build.Targets: 'NO-TARGET,NOOPT'

  workspace:
    clean: all

  pool:
    vmImage: ${{ parameters.vm_image }}

  ${{ if not(eq(parameters.container, '')) }}:
    container: ${{ parameters.container }}

  steps:
  - template: pr-gate-steps.yml
    parameters:
      tool_chain_tag: ${{ parameters.tool_chain_tag }}
      build_pkgs: $(Build.Pkgs)
      build_targets: $(Build.Targets)
      build_archs: ${{ parameters.arch_list }}
      usePythonVersion: ${{ parameters.usePythonVersion }}
      extra_install_step: ${{ parameters.extra_install_step }}

- job: Build_${{ parameters.tool_chain_tag }}_TARGET_CODE_COVERAGE
  dependsOn: Build_${{ parameters.tool_chain_tag }}
  workspace:
    clean: all

  pool:
    vmImage: 'windows-2019'

  steps:
    - checkout: self
      clean: true
      fetchDepth: 1
      submodules: true

    - task: DownloadPipelineArtifact@2
      displayName: 'Download Build Artifacts'
      inputs:
        buildType: 'current'
        targetPath: '$(Build.ArtifactStagingDirectory)'

    - powershell: Write-Host "##vso[task.setvariable variable=is_code_coverage]0"
      displayName: Give default value for whether CodeCoverage or not

    - powershell: if (Test-Path -Path $(Build.ArtifactStagingDirectory)/**/coverage.xml) {Write-Host "##vso[task.setvariable variable=is_code_coverage]1"}
      displayName: Check coverage.xml exist or not

    - task: CmdLine@2
      displayName: Create code coverage report
      inputs:
        script: |
          dotnet tool install -g dotnet-reportgenerator-globaltool
          reportgenerator -reports:$(Build.ArtifactStagingDirectory)/**/coverage.xml -targetdir:$(Build.ArtifactStagingDirectory)/Coverage -reporttypes:Cobertura -filefilters:-*Build*;-*UnitTest*;-*Mock*;-*usr*
      condition: eq(variables.is_code_coverage, 1)

    - task: PublishCodeCoverageResults@1
      displayName: 'Publish code coverage'
      inputs:
        codeCoverageTool: Cobertura
        summaryFileLocation: '$(Build.ArtifactStagingDirectory)/Coverage/Cobertura.xml'
      condition: eq(variables.is_code_coverage, 1)

