compilation_on_android.yml: Add shared lib build #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (C) 2019 Intel Corporation. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
name: build iwasm release | ||
on: | ||
workflow_call: | ||
inputs: | ||
arch: | ||
description: arch of the release | ||
type: string | ||
required: false | ||
default: x86_64 | ||
cwd: | ||
description: working directory | ||
type: string | ||
required: true | ||
llvm_cache_key: | ||
description: the cache key of llvm libraries | ||
type: string | ||
required: true | ||
runner: | ||
description: OS of compilation | ||
type: string | ||
required: true | ||
upload_url: | ||
description: a semantic version number. it is required when `release` is true. | ||
type: string | ||
required: false | ||
ver_num: | ||
description: a semantic version number. it is required when `release` is true. | ||
type: string | ||
required: false | ||
env: | ||
DEFAULT_BUILD_OPTIONS: | ||
"-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 \ | ||
-DWAMR_BUILD_CUSTOM_NAME_SECTION=0 \ | ||
-DWAMR_BUILD_DEBUG_INTERP=0 \ | ||
-DWAMR_BUILD_DEBUG_AOT=0 \ | ||
-DWAMR_BUILD_DUMP_CALL_STACK=0 \ | ||
-DWAMR_BUILD_LIBC_UVWASI=0 \ | ||
-DWAMR_BUILD_LIBC_EMCC=0 \ | ||
-DWAMR_BUILD_LIB_RATS=0 \ | ||
-DWAMR_BUILD_LOAD_CUSTOM_SECTION=0 \ | ||
-DWAMR_BUILD_MEMORY_PROFILING=0 \ | ||
-DWAMR_BUILD_MINI_LOADER=0 \ | ||
-DWAMR_BUILD_MULTI_MODULE=0 \ | ||
-DWAMR_BUILD_PERF_PROFILING=0 \ | ||
-DWAMR_BUILD_SPEC_TEST=0 \ | ||
-DWAMR_BUILD_BULK_MEMORY=1 \ | ||
-DWAMR_BUILD_LIB_PTHREAD=1 \ | ||
-DWAMR_BUILD_LIB_PTHREAD_SEMAPHORE=1 \ | ||
-DWAMR_BUILD_LIB_WASI_THREADS=1 \ | ||
-DWAMR_BUILD_LIBC_BUILTIN=1 \ | ||
-DWAMR_BUILD_LIBC_WASI=1 \ | ||
-DWAMR_BUILD_REF_TYPES=1 \ | ||
-DWAMR_BUILD_SIMD=1 \ | ||
-DWAMR_BUILD_SHARED_MEMORY=1 \ | ||
-DWAMR_BUILD_TAIL_CALL=1 \ | ||
-DWAMR_BUILD_THREAD_MGR=1" | ||
GC_EH_BUILD_OPTIONS: | ||
"-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 \ | ||
-DWAMR_BUILD_CUSTOM_NAME_SECTION=0 \ | ||
-DWAMR_BUILD_DEBUG_INTERP=0 \ | ||
-DWAMR_BUILD_DEBUG_AOT=0 \ | ||
-DWAMR_BUILD_DUMP_CALL_STACK=0 \ | ||
-DWAMR_BUILD_LIBC_UVWASI=0 \ | ||
-DWAMR_BUILD_LIBC_EMCC=0 \ | ||
-DWAMR_BUILD_LIB_RATS=0 \ | ||
-DWAMR_BUILD_LOAD_CUSTOM_SECTION=0 \ | ||
-DWAMR_BUILD_MEMORY_PROFILING=0 \ | ||
-DWAMR_BUILD_MINI_LOADER=0 \ | ||
-DWAMR_BUILD_MULTI_MODULE=0 \ | ||
-DWAMR_BUILD_PERF_PROFILING=0 \ | ||
-DWAMR_BUILD_SPEC_TEST=0 \ | ||
-DWAMR_BUILD_BULK_MEMORY=1 \ | ||
-DWAMR_BUILD_LIB_PTHREAD=1 \ | ||
-DWAMR_BUILD_LIB_PTHREAD_SEMAPHORE=1 \ | ||
-DWAMR_BUILD_LIB_WASI_THREADS=1 \ | ||
-DWAMR_BUILD_LIBC_BUILTIN=1 \ | ||
-DWAMR_BUILD_LIBC_WASI=1 \ | ||
-DWAMR_BUILD_REF_TYPES=1 \ | ||
-DWAMR_BUILD_SIMD=1 \ | ||
-DWAMR_BUILD_SHARED_MEMORY=1 \ | ||
-DWAMR_BUILD_TAIL_CALL=1 \ | ||
-DWAMR_BUILD_THREAD_MGR=1 \ | ||
-DWAMR_BUILD_EXCE_HANDLING=1 \ | ||
-DWAMR_BUILD_GC=1" | ||
SHARED_BUILD_OPTIONS: | ||
"-DWAMR_BUILD_SHARED=1 \ | ||
"-DWAMR_BUILD_STATIC=0 "" | ||
permissions: | ||
contents: read | ||
jobs: | ||
build: | ||
runs-on: ${{ inputs.runner }} | ||
strategy: | ||
matrix: | ||
include: | ||
- build_options: $DEFAULT_BUILD_OPTIONS | ||
suffix: '' | ||
- build_options: $GC_EH_BUILD_OPTIONS | ||
suffix: '-gc-eh' | ||
- build_options: $SHARED_BUILD_OPTIONS | ||
suffix: '-shared' | ||
permissions: | ||
contents: write # for uploading release artifacts | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: get cached 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: ${{ inputs.llvm_cache_key }} | ||
fail-on-cache-miss: true | ||
- name: generate iwasm binary release | ||
shell: bash | ||
run: | | ||
cmake -S . -B build ${{ matrix.build_options }} | ||
cmake --build build --config Release --parallel 4 | ||
working-directory: ${{ inputs.cwd }} | ||
- name: Compress the binary on Windows | ||
if: inputs.runner == 'windows-latest' | ||
run: | | ||
tar -czf iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz iwasm.exe | ||
Compress-Archive -Path iwasm.exe -DestinationPath iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.zip | ||
mv iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.* ../ | ||
working-directory: ${{ inputs.cwd }}/build/Release | ||
- name: compress the binary on non-Windows | ||
if: inputs.runner != 'windows-latest' | ||
run: | | ||
tar czf iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz iwasm | ||
zip iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.zip iwasm | ||
working-directory: ${{ inputs.cwd }}/build | ||
- name: upload release tar.gz | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ inputs.upload_url }} | ||
asset_path: ${{ inputs.cwd }}/build/iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz | ||
asset_name: iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.tar.gz | ||
asset_content_type: application/x-gzip | ||
- name: upload release zip | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ inputs.upload_url }} | ||
asset_path: ${{ inputs.cwd }}/build/iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.runner }}.zip | ||
asset_name: iwasm${{ matrix.suffix }}-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip | ||
asset_content_type: application/zip |