# @file BuildPlatform.yml
#
# A reusable workflow that builds an EDKII platform and uploads it's artifacts.
#
##
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
##

name: Build Platform

on:
  workflow_call:
    inputs:
      python-version:
        required: true
        description: 'The version of Python to use for the job'
        type: string
        default: '3.12'
      runs-on:
        required: true
        description: 'The runner type to use for the job'
        type: string
        default: 'ubuntu-latest'
      build-file:
        required: true
        description: 'The path to the stuart build script'
        type: string
      tool-chain:
        required: true
        description: 'The tool chain to use for the build'
        type: string
      target:
        required: true
        description: 'The target to build'
        type: string
      extra-build-args:
        required: false
        description: 'Extra arguments to pass to the build script'
        type: string
        default: ''
      extra-pip-requirements:
        required: false
        description: 'Extra pip requirements to install'
        type: string
        default: ''
      extra-setup-cmd:
        required: false
        description: 'Extra setup commands to run'
        type: string
        default: ''
      extra-artifact-path:
        required: false
        description: 'Extra artifact paths to upload'
        type: string
        default: ''

jobs:
  build:
    name: Build Platform

    runs-on: ${{ inputs.runs-on }}
    container:
      image: ${{ startswith(inputs.runs-on, 'ubuntu') && 'ghcr.io/tianocore/containers/fedora-40-dev:latest' || '' }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - run: |
          git config --global --add safe.directory '*'
        name: 'Set Safe Directory'
        if: ${{ startsWith(inputs.runs-on, 'ubuntu') }}

      - name: Set up Python ${{ inputs.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ inputs.python-version }}
        if: ${{ !startsWith(inputs.runs-on, 'ubuntu') }}

      - run: |
          pip install --upgrade ${{ inputs.extra-pip-requirements }} -r pip-requirements.txt
        name: 'Install/Upgrade pip modules'

      - run: ${{ inputs.extra-setup-cmd }}
        name: 'Extra Setup Commands'
        if: ${{ inputs.extra-setup-cmd != '' }}

      - run: |
          stuart_setup -c ${{ inputs.build-file }}
        name: 'Clone Submodules'

      - run: |
          stuart_update -c ${{ inputs.build-file }}
        name: 'Download External Dependencies'

      - run: |
          python BaseTools/Edk2ToolsBuild.py -t ${{ inputs.tool-chain }}
        name: 'Build BaseTools'

      - run: |
          stuart_build -c ${{ inputs.build-file }} TARGET=${{ inputs.target}} TOOL_CHAIN_TAG=${{ inputs.tool-chain }} ${{ inputs.extra-build-args }}
        name: 'Build Platform'

      - name: Upload Platform Build Logs
        uses: actions/upload-artifact@v4
        with:
          name: Platform Build Logs ${{ inputs.tool-chain }} ${{ inputs.target }} ${{ inputs.extra-build-args }}
          path: |
            Build/*.txt
            BaseTools/BaseToolsBuild/*
            ${{ inputs.extra-artifact-path }}
        if: always()
