Update release pipeline for refactor (#459)

## Description

- Updates the Release.yml pipeline to accommodate the recent refactor
  in mu_tiano_platforms.
- Updates some versions used in related YAML files to latest.
- Makes the Job ID in Platform-Build-Job.yml unique so it can be
  invoked multiple times from a single stage.
- Relies entirely upon the `tool_chain_tag` parameter in
  `Platform-Build-Job.yml` to remove assumptions about pipeline
  variables in the environment (which allows the file to be reused
  across different values of the variables) in the same stage.

Note: Some versions (like Linux container image) are directly
specified in `Release.yml`. The file will be synced fom mu_devops
in the future to reuse the single definition for these versions
maintained there.

- [ ] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [ ] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

Mu Tiano Platforms fork.

## Integration Instructions

N/A - Release pipeline for this repo.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
This commit is contained in:
Michael Kubacki 2023-04-24 18:00:37 -04:00 коммит произвёл GitHub
Родитель e0c6ef0d99
Коммит 57e90f7d74
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 26 добавлений и 18 удалений

Просмотреть файл

@ -25,7 +25,7 @@ parameters:
default: ''
jobs:
- job: PlatformBuild
- job: PlatformBuild_${{ parameters.tool_chain_tag }}
displayName: Build Platforms
variables:
@ -118,7 +118,7 @@ jobs:
displayName: Install mtools and dosfstools
- template: Steps/BuildPlatform.yml@mu_devops
parameters:
tool_chain_tag: $(tool_chain_tag)
tool_chain_tag: ${{ parameters.tool_chain_tag }}
build_pkg: $(Build.Package)
build_target: $(Build.Target)
build_arch: $(Build.Arch)
@ -128,5 +128,5 @@ jobs:
run_timeout: 25
extra_install_step: ${{ parameters.extra_install_step }}
install_tools: ${{ eq(parameters.container_image, '') }}
artifacts_identifier: '$(Build.Package) $(tool_chain_tag) $(Build.Target) $(Build.ExtraTag)'
artifacts_identifier: '$(Build.Package) ${{ parameters.tool_chain_tag }} $(Build.Target) $(Build.ExtraTag)'
artifacts_binary: $(Build.ArtifactsBinary)

Просмотреть файл

@ -23,5 +23,5 @@ jobs:
- powershell: choco install qemu --version=2022.8.31; Write-Host "##vso[task.prependpath]c:\Program Files\qemu"
displayName: Install QEMU and Set QEMU on path # friendly name displayed in the UI
condition: and(gt(variables.pkg_count, 0), succeeded())
tool_chain_tag: $(tool_chain_tag)
tool_chain_tag: 'VS2022'
vm_image: $(vm_image)

Просмотреть файл

@ -17,27 +17,35 @@ resources:
type: github
endpoint: microsoft
name: microsoft/mu_devops
ref: refs/tags/v2.0.1
ref: refs/tags/v2.3.0
name: $(Date:yyyyMMdd)$(Rev:.r) Mu Tiano Platforms Release
stages:
- stage: BuildQemuQ35
displayName: Build QEMU Q35
- stage: BuildQemuPlatforms
displayName: Build QEMU Platforms
jobs:
- template: ../Platforms/QemuQ35Pkg/.azurepipelines/templates/Job-Ubuntu-GCC5.yml
- template: ../Platforms/QemuQ35Pkg/.azurepipelines/templates/Job-Windows-VS.yml
- template: Platform-Build-Job.yml
parameters:
extra_install_step:
- script: sudo dnf --assumeyes install openssl-devel
displayName: Install openssl
container_image: ghcr.io/tianocore/containers/fedora-37-test:54e5bd1
tool_chain_tag: GCC5
vm_image: ubuntu-latest
- stage: BuildQemuSbsa
displayName: Build QEMU SBSA
dependsOn: [] # Build in parallel with the previous stage
jobs:
- template: ../Platforms/QemuSbsaPkg/.azurepipelines/templates/Job-Ubuntu-GCC5.yml
- template: Platform-Build-Job.yml
parameters:
extra_install_step:
- powershell: choco install qemu --version=2022.8.31; Write-Host "##vso[task.prependpath]c:\Program Files\qemu"
displayName: Install QEMU and Set QEMU on path
condition: and(gt(variables.pkg_count, 0), succeeded())
tool_chain_tag: VS2022
vm_image: windows-latest
- stage: PublishReleaseArtifacts
displayName: Publish Release Artifacts
dependsOn:
- BuildQemuQ35
- BuildQemuSbsa
- BuildQemuPlatforms
jobs:
- template: templates/Job-Publish.yml

Просмотреть файл

@ -73,9 +73,9 @@ jobs:
- checkout: none
- task: UsePythonVersion@0
displayName: Use Python 3.10.x
displayName: Use Python 3.11.x
inputs:
versionSpec: 3.10.x
versionSpec: 3.11.x
architecture: x64
- script: python -m pip install edk2-pytool-extensions==0.*