build: Add arm64 to the build matrix
This will also allow us to create official arm64 builds starting with our next release. Change-Id: Iaca5e8406c5e28883346a7884eb0f30815ad0d19
This commit is contained in:
parent
e5a0d6aa58
commit
879e2fef16
|
@ -38,23 +38,31 @@ jobs:
|
||||||
needs: lint
|
needs: lint
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
|
os: ["ubuntu-latest", "macos-latest", "windows-latest", "linux-arm64"]
|
||||||
build_type: ["Debug", "Release"]
|
build_type: ["Debug", "Release"]
|
||||||
lib_type: ["static", "shared"]
|
lib_type: ["static", "shared"]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
os_name: linux
|
os_name: linux
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ""
|
exe_ext: ""
|
||||||
build_type_suffix: ""
|
build_type_suffix: ""
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
os_name: osx
|
os_name: osx
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ""
|
exe_ext: ""
|
||||||
build_type_suffix: ""
|
build_type_suffix: ""
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
os_name: win
|
os_name: win
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ".exe"
|
exe_ext: ".exe"
|
||||||
# 64-bit outputs on Windows go to a different folder name.
|
# 64-bit outputs on Windows go to a different folder name.
|
||||||
build_type_suffix: "_x64"
|
build_type_suffix: "_x64"
|
||||||
|
- os: linux-arm64
|
||||||
|
os_name: linux-arm64
|
||||||
|
target_arch: arm64
|
||||||
|
exe_ext: ""
|
||||||
|
build_type_suffix: ""
|
||||||
|
|
||||||
name: Build and test ${{ matrix.os_name }} ${{ matrix.build_type }} ${{ matrix.lib_type }}
|
name: Build and test ${{ matrix.os_name }} ${{ matrix.build_type }} ${{ matrix.lib_type }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
|
@ -8,6 +8,9 @@ inputs:
|
||||||
os_name:
|
os_name:
|
||||||
description: The name of the OS (one word). Appended to artifact filenames.
|
description: The name of the OS (one word). Appended to artifact filenames.
|
||||||
required: true
|
required: true
|
||||||
|
target_arch:
|
||||||
|
description: The CPU architecture to target. We support x64, arm64.
|
||||||
|
required: true
|
||||||
lib_type:
|
lib_type:
|
||||||
description: A library type, either "static" or "shared".
|
description: A library type, either "static" or "shared".
|
||||||
required: true
|
required: true
|
||||||
|
@ -48,6 +51,28 @@ runs:
|
||||||
echo "${GITHUB_WORKSPACE}/depot_tools" >> $GITHUB_PATH
|
echo "${GITHUB_WORKSPACE}/depot_tools" >> $GITHUB_PATH
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
|
|
||||||
|
- name: Build ninja (arm only)
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# NOTE: There is no prebuilt copy of ninja for the "aarch64"
|
||||||
|
# architecture (as reported by "uname -p" on arm64). So we must build
|
||||||
|
# our own, as recommended by depot_tools when it fails to fetch a
|
||||||
|
# prebuilt copy for us.
|
||||||
|
# NOTE 2: It turns out that $GITHUB_PATH operates like a stack.
|
||||||
|
# Appending to that file places the new path at the beginning of $PATH
|
||||||
|
# for the next step, so this step must come _after_ installing
|
||||||
|
# depot_tools.
|
||||||
|
if [[ "${{ inputs.target_arch }}" == "arm64" ]]; then
|
||||||
|
echo "::group::Build ninja (arm-only)"
|
||||||
|
git clone https://github.com/ninja-build/ninja.git -b v1.8.2
|
||||||
|
# The --bootstrap option compiles ninja as well as configures it.
|
||||||
|
# This is the exact command prescribed by depot_tools when it fails to
|
||||||
|
# fetch a ninja binary for your platform.
|
||||||
|
(cd ninja && ./configure.py --bootstrap)
|
||||||
|
echo "${GITHUB_WORKSPACE}/ninja" >> $GITHUB_PATH
|
||||||
|
echo "::endgroup::"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Configure gclient
|
- name: Configure gclient
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
@ -57,7 +82,7 @@ runs:
|
||||||
|
|
||||||
- name: Sync gclient
|
- name: Sync gclient
|
||||||
env:
|
env:
|
||||||
GYP_DEFINES: "target_arch=x64 libpackager_type=${{ inputs.lib_type }}_library"
|
GYP_DEFINES: "target_arch=${{ inputs.target_arch }} libpackager_type=${{ inputs.lib_type }}_library"
|
||||||
GYP_MSVS_VERSION: "2019"
|
GYP_MSVS_VERSION: "2019"
|
||||||
GYP_MSVS_OVERRIDE_PATH: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise"
|
GYP_MSVS_OVERRIDE_PATH: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
|
@ -112,23 +112,31 @@ jobs:
|
||||||
needs: [setup, lint, draft_release]
|
needs: [setup, lint, draft_release]
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
|
os: ["ubuntu-latest", "macos-latest", "windows-latest", "linux-arm64"]
|
||||||
build_type: ["Debug", "Release"]
|
build_type: ["Debug", "Release"]
|
||||||
lib_type: ["static", "shared"]
|
lib_type: ["static", "shared"]
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
os_name: linux
|
os_name: linux
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ""
|
exe_ext: ""
|
||||||
build_type_suffix: ""
|
build_type_suffix: ""
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
os_name: osx
|
os_name: osx
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ""
|
exe_ext: ""
|
||||||
build_type_suffix: ""
|
build_type_suffix: ""
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
os_name: win
|
os_name: win
|
||||||
|
target_arch: x64
|
||||||
exe_ext: ".exe"
|
exe_ext: ".exe"
|
||||||
# 64-bit outputs on Windows go to a different folder name.
|
# 64-bit outputs on Windows go to a different folder name.
|
||||||
build_type_suffix: "_x64"
|
build_type_suffix: "_x64"
|
||||||
|
- os: linux-arm64
|
||||||
|
os_name: linux-arm64
|
||||||
|
target_arch: arm64
|
||||||
|
exe_ext: ""
|
||||||
|
build_type_suffix: ""
|
||||||
|
|
||||||
name: Build and test ${{ matrix.os_name }} ${{ matrix.build_type }} ${{ matrix.lib_type }}
|
name: Build and test ${{ matrix.os_name }} ${{ matrix.build_type }} ${{ matrix.lib_type }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
Loading…
Reference in New Issue