mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 23:15:16 +00:00
163 lines
5.7 KiB
YAML
163 lines
5.7 KiB
YAML
# 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"
|
|
|
|
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'
|
|
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
|