Add ARM MacOS to the CI (#3120)

Add ARM MacOS to the CI, to prevent regressions like the one fixed in #3102 in the future.
And add the AOT compilation to the wasi-threads example.
This commit is contained in:
Enrico Loparco 2024-02-03 03:51:02 +00:00 committed by GitHub
parent a27ddece7f
commit a32b082d2a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,7 +1,7 @@
# Copyright (C) 2019 Intel Corporation. All rights reserved. # Copyright (C) 2019 Intel Corporation. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
name: compilation on macos-latest name: compilation on macos
on: on:
# will be triggered on PR events # will be triggered on PR events
@ -55,20 +55,25 @@ env:
LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0" LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
jobs: jobs:
build_llvm_libraries: build_llvm_libraries_on_intel_macos:
uses: ./.github/workflows/build_llvm_libraries.yml uses: ./.github/workflows/build_llvm_libraries.yml
with: with:
os: "macos-latest" os: "macos-latest"
arch: "X86" arch: "X86"
build_llvm_libraries_on_arm_macos:
uses: ./.github/workflows/build_llvm_libraries.yml
with:
os: "macos-14"
arch: "AArch64 ARM"
build_wamrc: build_wamrc:
needs: [build_llvm_libraries] needs: [build_llvm_libraries_on_intel_macos]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
include: include:
- os: macos-latest - os: macos-latest
llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }} llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
steps: steps:
- name: checkout - name: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -97,7 +102,7 @@ jobs:
working-directory: wamr-compiler working-directory: wamr-compiler
build_iwasm: build_iwasm:
needs: [build_llvm_libraries] needs: [build_llvm_libraries_on_intel_macos]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
@ -171,7 +176,7 @@ jobs:
make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1" make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
include: include:
- os: macos-latest - os: macos-latest
llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }} llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
steps: steps:
- name: checkout - name: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -243,11 +248,11 @@ jobs:
working-directory: samples/wasm-c-api working-directory: samples/wasm-c-api
build_samples_others: build_samples_others:
needs: [build_iwasm, build_wamrc] needs: [build_iwasm, build_wamrc, build_llvm_libraries_on_intel_macos, build_llvm_libraries_on_arm_macos]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [macos-latest] os: [macos-latest, macos-14]
wasi_sdk_release: wasi_sdk_release:
[ [
"https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz", "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
@ -256,6 +261,11 @@ jobs:
[ [
"https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz", "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz",
] ]
include:
- os: macos-latest
llvm_cache_key: ${{ needs.build_llvm_libraries_on_intel_macos.outputs.cache_key }}
- os: macos-14
llvm_cache_key: ${{ needs.build_llvm_libraries_on_arm_macos.outputs.cache_key }}
steps: steps:
- name: checkout - name: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -320,6 +330,25 @@ jobs:
cmake --build . --config Debug --parallel 4 cmake --build . --config Debug --parallel 4
./hello ./hello
- name: Get LLVM libraries
id: retrieve_llvm_libs
uses: actions/cache@v4
with:
path: |
./core/deps/llvm/build/bin
./core/deps/llvm/build/include
./core/deps/llvm/build/lib
./core/deps/llvm/build/libexec
./core/deps/llvm/build/share
key: ${{ matrix.llvm_cache_key }}
- name: Build wamrc
run: |
mkdir build && cd build
cmake ..
cmake --build . --config Release --parallel 4
working-directory: wamr-compiler
- name: Build Sample [wasi-threads] - name: Build Sample [wasi-threads]
run: | run: |
cd samples/wasi-threads cd samples/wasi-threads
@ -328,6 +357,9 @@ jobs:
cmake --build . --config Debug --parallel 4 cmake --build . --config Debug --parallel 4
./iwasm wasm-apps/no_pthread.wasm ./iwasm wasm-apps/no_pthread.wasm
../../../wamr-compiler/build/wamrc --size-level=0 --enable-multi-thread -o wasm-apps/no_pthread.aot wasm-apps/no_pthread.wasm
./iwasm wasm-apps/no_pthread.aot
- name: Build Sample [shared-module] - name: Build Sample [shared-module]
run: | run: |
cd samples/shared-module cd samples/shared-module