## @file
# Azure Pipeline build file for building a platform.
#
# Platform: EmulatorPkg
# OS: Ubuntu
# Toolchain: GCC5
#
# Copyright (c) Microsoft Corporation.
# Copyright (c) 2020, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
trigger:
  - master
  - stable/*
pr:
  - master
  - stable/*
jobs:
  - job: Platform_CI
    variables:
      package: 'EmulatorPkg'
      vm_image: 'ubuntu-18.04'
      should_run: false
      run_flags: "MAKE_STARTUP_NSH=TRUE"

    #Use matrix to speed up the build process
    strategy:
        matrix:
          EmulatorPkg_X64_DEBUG:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: ""
            Build.Target: "DEBUG"
            Run.Flags: $(run_flags)
            Run: $(should_run)
          EmulatorPkg_X64_RELEASE:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: ""
            Build.Target: "RELEASE"
            Run.Flags: $(run_flags)
            Run: $(should_run)
          EmulatorPkg_X64_NOOPT:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: ""
            Build.Target: "NOOPT"
            Run.Flags: $(run_flags)
            Run: $(should_run)
          EmulatorPkg_X64_FULL_DEBUG:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE"
            Build.Target: "DEBUG"
            Run.Flags: $(run_flags)
            Run: $(should_run)
          EmulatorPkg_X64_FULL_RELEASE:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE"
            Build.Target: "RELEASE"
            Run.Flags: $(run_flags)
            Run: $(should_run)
          EmulatorPkg_X64_FULL_NOOPT:
            Build.File: "$(package)/PlatformCI/PlatformBuild.py"
            Build.Arch: "X64"
            Build.Flags: "BLD_*_SECURE_BOOT_ENABLE=TRUE"
            Build.Target: "NOOPT"
            Run.Flags: $(run_flags)
            Run: $(should_run)

    workspace:
      clean: all

    pool:
      vmImage: $(vm_image)

    steps:
    - template: ../../../.azurepipelines/templates/platform-build-run-steps.yml
      parameters:
        tool_chain_tag: GCC5
        build_pkg: $(package)
        build_target: $(Build.Target)
        build_arch: $(Build.Arch)
        build_file: $(Build.File)
        build_flags: $(Build.Flags)
        run_flags: $(Run.Flags)
