Skip to content

Commit

Permalink
Onboarding ARM64 builds on selfhosted Azure pipeline agents (#404)
Browse files Browse the repository at this point in the history
Please ensure you have read the [contribution
docs](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md) prior
to submitting the pull request. In particular,
[pull request
guidelines](https://github.com/microsoft/mu/blob/master/CONTRIBUTING.md#pull-request-best-practices).

This change added a few new matrix entries to support building
mu_tiano_platforms on native ARM64 systems. The PR will cover both
#369 and
#305.

The PR should also be incorporated with mu_devops change.

For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_

- [x] 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, ...

This was tested on selfhost-agents and existing agents.

Pipeline changes, N/A for integration.
  • Loading branch information
kuqin12 authored and kenlautner committed Dec 16, 2023
1 parent ba25463 commit 1c5367e
Show file tree
Hide file tree
Showing 6 changed files with 163 additions and 280 deletions.
82 changes: 0 additions & 82 deletions .azurepipelines/Matrix-Build-Job-Clang.yml

This file was deleted.

107 changes: 0 additions & 107 deletions .azurepipelines/Matrix-Build-Job.yml

This file was deleted.

29 changes: 0 additions & 29 deletions .azurepipelines/Ubuntu-CLANGPDB.yml

This file was deleted.

101 changes: 82 additions & 19 deletions .azurepipelines/Ubuntu-GCC5.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,94 @@
## @file
# Azure Pipeline build file for a build using Ubuntu and GCC.
#
# IMPORTANT: This file requires the local repo to contain a .azurepipelines/Matrix-Build-Job.yml file that
# performs the actual build steps for the configurations and packages supported by the repo.
#
# NOTE: This file is automatically synchronized from Mu DevOps. Update the original file there
# instead of the file in this repo.
#
# - Mu DevOps Repo: https://github.com/microsoft/mu_devops
# - File Sync Settings: https://github.com/microsoft/mu_devops/blob/main/.sync/Files.yml
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
##

resources:
repositories:
- repository: mu_devops
type: github
endpoint: microsoft
name: microsoft/mu_devops
ref: main

variables:
- group: architectures-arm-64-x86-64
- group: tool-chain-ubuntu-gcc

jobs:
- template: Matrix-Build-Job.yml
extends:
template: MuDevOpsWrapper.yml
parameters:
arch_list: $(arch_list)
extra_build_args: CODE_COVERAGE=TRUE CC_HTML=TRUE
extra_install_step:
- script: |
sudo apt-get install -y mingw-w64 lcov
pip install lcov_cobertura pycobertura
displayName: Install Windows Resource Compiler for Linux & Code Coverage Tools
tool_chain_tag: $(tool_chain_tag)
vm_image: $(vm_image)
do_ci_build: true
do_ci_setup: false
do_non_ci_build: false
do_non_ci_setup: true
do_pr_eval: true
container_build: true
os_type: Linux
build_matrix:
TARGET_MDE_CPU:
Pkgs: 'MdePkg,UefiCpuPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
TARGET_MDEMODULE_DEBUG:
Pkgs: 'MdeModulePkg'
Targets: 'DEBUG,NOOPT'
ArchList: $(arch_list)
TARGET_MDEMODULE_RELEASE:
Pkgs: 'MdeModulePkg'
Targets: 'RELEASE,NO-TARGET'
ArchList: $(arch_list)
TARGET_NETWORK:
Pkgs: 'NetworkPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
TARGET_OTHER:
Pkgs: 'PcAtChipsetPkg,ShellPkg,StandaloneMmPkg,BaseTools'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
TARGET_TEST_POLICY:
Pkgs: 'UnitTestFrameworkPkg,PolicyServicePkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
TARGET_CRYPTO:
Pkgs: 'CryptoPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
TARGET_MDE_CPU_ARM:
Pkgs: 'MdePkg,UefiCpuPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_MDEMODULE_DEBUG_ARM:
Pkgs: 'MdeModulePkg'
Targets: 'DEBUG,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_MDEMODULE_RELEASE_ARM:
Pkgs: 'MdeModulePkg'
Targets: 'RELEASE,NO-TARGET'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_NETWORK_ARM:
Pkgs: 'NetworkPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_OTHER_ARM:
Pkgs: 'PcAtChipsetPkg,ShellPkg,StandaloneMmPkg,BaseTools'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_TEST_POLICY_ARM:
Pkgs: 'UnitTestFrameworkPkg,PolicyServicePkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
TARGET_CRYPTO_ARM:
Pkgs: 'CryptoPkg'
Targets: 'DEBUG,RELEASE,NO-TARGET,NOOPT'
ArchList: $(arch_list)
SelfHostAgent: true
30 changes: 0 additions & 30 deletions .azurepipelines/Windows-CLANGPDB.yml

This file was deleted.

Loading

0 comments on commit 1c5367e

Please sign in to comment.