summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 13:19:22 +0000
commitc21c3b0befeb46a51b6bf3758ffa30813bea0ff0 (patch)
tree9754ff1ca740f6346cf8483ec915d4054bc5da2d /fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github
parentAdding upstream version 1.43.2. (diff)
downloadnetdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.tar.xz
netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.zip
Adding upstream version 1.44.3.upstream/1.44.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/extract_from_release_notes.py60
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/fetch_and_compare_version.py123
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/reuse_latest_release_binaries.py102
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_docker_images.yml89
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_iwasm_release.yml108
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_llvm_libraries.yml91
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_lldb.yml197
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_sdk.yml78
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_vscode_ext.yml73
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamrc.yml86
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/coding_guidelines.yml28
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_android_ubuntu.yml645
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_macos.yml331
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_nuttx.yml134
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_sgx.yml401
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_windows.yml77
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/create_tag.yml68
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/release_process.yml215
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/reuse_latest_release_binaries.yml68
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/spec_test_on_nuttx.yml145
20 files changed, 3119 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/extract_from_release_notes.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/extract_from_release_notes.py
new file mode 100644
index 000000000..3802d9211
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/extract_from_release_notes.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+
+"""
+Extract the latest release notes content from RELEASE_NOTES.md
+"""
+
+import argparse
+import os
+import sys
+import traceback
+
+
+def latest_content(release_notes_path):
+ """
+ can't change the format of the original content
+ """
+ content = ""
+ start_extract = False
+ with open(release_notes_path, encoding="utf-8") as f:
+ for line in f:
+ if line.startswith("## "):
+ if start_extract:
+ break
+
+ start_extract = True
+ continue
+
+ # hit a separated line
+ if line.startswith("---"):
+ break
+
+ content += line
+
+ content += os.linesep
+ return content
+
+
+def main():
+ """
+ GO!GO!!GO!!!
+ """
+ parser = argparse.ArgumentParser(description="run the sample and examine outputs")
+ parser.add_argument("release_notes_path", type=str)
+ args = parser.parse_args()
+
+ ret = 1
+ try:
+ print(latest_content(args.release_notes_path))
+ ret = 0
+ except AssertionError:
+ traceback.print_exc()
+ return ret
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/fetch_and_compare_version.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/fetch_and_compare_version.py
new file mode 100644
index 000000000..ac206cade
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/fetch_and_compare_version.py
@@ -0,0 +1,123 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+
+import re
+import shlex
+import subprocess
+import sys
+
+
+def fetch_version_from_code():
+ """
+ search the semantic version definition in core/version.h
+ """
+ major, minor, patch = "", "", ""
+ with open("core/version.h", encoding="utf-8") as f:
+ for line in f:
+ if "WAMR_VERSION" not in line:
+ continue
+
+ major_match = re.search(r"WAMR_VERSION_MAJOR (\d+)", line)
+ if major_match is not None:
+ major = major_match.groups()[0]
+ continue
+
+ minor_match = re.search(r"WAMR_VERSION_MINOR (\d+)", line)
+ if minor_match is not None:
+ minor = minor_match.groups()[0]
+ continue
+
+ patch_match = re.search(r"WAMR_VERSION_PATCH (\d+)", line)
+ if patch_match is not None:
+ patch = patch_match.groups()[0]
+
+ if len(major) == 0 or len(minor) == 0 or len(patch) == 0:
+ raise Exception(
+ "can't find the semantic version definition likes WAMR_VERSION_*"
+ )
+ return f"WAMR-{major}.{minor}.{patch}"
+
+
+def fetch_latest_git_tag():
+ list_tag_cmd = (
+ 'git tag --list WAMR-*.*.* --sort=committerdate --format="%(refname:short)"'
+ )
+ p = subprocess.run(shlex.split(list_tag_cmd), capture_output=True, check=True)
+
+ all_tags = p.stdout.decode().strip()
+ latest_tag = all_tags.split("\n")[-1]
+ return latest_tag
+
+
+def match_version_pattern(v):
+ pattern = r"WAMR-\d+\.\d+\.\d+"
+ m = re.match(pattern, v)
+ return m is not None
+
+
+def split_version_string(v):
+ """
+ return the semantic version as an integer list
+ """
+ pattern = r"WAMR-(\d+)\.(\d+)\.(\d+)"
+ m = re.match(pattern, v)
+ return [int(x) for x in m.groups()]
+
+
+def compare_version_string(v1, v2):
+ """
+ return value:
+ - 1. if v1 > v2
+ - -1. if v1 < v2
+ - 0. if v1 == v2
+ """
+ if not match_version_pattern(v1):
+ raise Exception(f"{v1} doesn't match the version pattern")
+
+ if not match_version_pattern(v2):
+ raise Exception(f"{v2} doesn't match the version pattern")
+
+ v1_sem_ver = split_version_string(v1)
+ v2_sem_ver = split_version_string(v2)
+
+ return 0 if v1_sem_ver == v2_sem_ver else (1 if v1_sem_ver > v2_sem_ver else -1)
+
+
+def is_major_or_minor_changed(v1, v2):
+ """
+ return true if change either major of v2 or minor of v2
+ return false or else
+ """
+ if not match_version_pattern(v1):
+ raise Exception(f"{v1} doesn't match the version pattern")
+
+ if not match_version_pattern(v2):
+ raise Exception(f"{v2} doesn't match the version pattern")
+
+ v1_major, v1_minor, _ = split_version_string(v1)
+ v2_major, v2_minor, _ = split_version_string(v2)
+
+ return v2_major != v1_major or v2_minor != v1_minor
+
+
+def next_version():
+ definition = fetch_version_from_code()
+ tag = fetch_latest_git_tag()
+
+ new_version = ""
+ minor_changed = False
+ if compare_version_string(definition, tag) == 1:
+ new_version = definition.split("-")[-1]
+
+ if is_major_or_minor_changed(tag, definition):
+ minor_changed = True
+
+ return new_version, "major_minor_change" if minor_changed else "patch_change"
+
+
+if __name__ == "__main__":
+ print(f"{next_version()[0]},{next_version()[1]}")
+ sys.exit(0)
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/reuse_latest_release_binaries.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/reuse_latest_release_binaries.py
new file mode 100644
index 000000000..0fe2d9766
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/scripts/reuse_latest_release_binaries.py
@@ -0,0 +1,102 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+
+import argparse
+import json
+import os
+import shlex
+import subprocess
+import sys
+from urllib.error import HTTPError, URLError
+import urllib.request
+
+
+def get_last_commit(target_path, cwd):
+ last_commit_cmd = f"git log -n 1 --pretty=format:%H -- {target_path}"
+ p = subprocess.run(
+ shlex.split(last_commit_cmd), capture_output=True, check=True, cwd=cwd
+ )
+ return p.stdout.decode().strip()
+
+
+def fetch_git_tags():
+ list_tag_cmd = (
+ 'git tag --list WAMR-*.*.* --sort=committerdate --format="%(refname:short)"'
+ )
+ p = subprocess.run(shlex.split(list_tag_cmd), capture_output=True, check=True)
+
+ all_tags = p.stdout.decode().strip()
+ return all_tags.split("\n")
+
+
+def download_binaries(binary_name_stem, cwd):
+ """
+ 1. find the latest release name
+ 2. form assets download url:
+ """
+ try:
+ all_tags = fetch_git_tags()
+ # *release_process.yml* will create a tag and release at first
+ second_last_tag = all_tags[-2]
+ latest_tag = all_tags[-1]
+
+ latest_url = "https://api.github.com/repos/bytecodealliance/wasm-micro-runtime/releases/latest"
+ print(f"::notice::query the latest release with {latest_url}...")
+ with urllib.request.urlopen(latest_url) as response:
+ body = response.read()
+
+ release_name = json.loads(body)["name"]
+
+ # WAMR-X.Y.Z -> X.Y.Z
+ second_last_sem_ver = second_last_tag[5:]
+ latest_sem_ver = latest_tag[5:]
+ assert latest_sem_ver in binary_name_stem
+ name_stem_in_release = binary_name_stem.replace(
+ latest_sem_ver, second_last_sem_ver
+ )
+
+ # download and rename
+ for file_ext in (".zip", ".tar.gz"):
+ assets_url = f"https://github.com/bytecodealliance/wasm-micro-runtime/releases/download/{release_name}/{name_stem_in_release}{file_ext}"
+ local_path = f"{binary_name_stem}{file_ext}"
+ print(f"::notice::download from {assets_url} and save as {local_path}...")
+ urllib.request.urlretrieve(assets_url, local_path)
+ return True
+ except HTTPError as error:
+ print(error.status, error.reason)
+ except URLError as error:
+ print(error.reason)
+ except TimeoutError:
+ print("Request timeout")
+
+ return False
+
+
+def main():
+ parser = argparse.ArgumentParser(
+ description="Reuse binaries of the latest release if no more modification on the_path since last_commit"
+ )
+ parser.add_argument("working_directory", type=str)
+ parser.add_argument("--binary_name_stem", type=str)
+ parser.add_argument("--last_commit", type=str)
+ parser.add_argument("--the_path", type=str)
+ args = parser.parse_args()
+
+ last_commit = get_last_commit(args.the_path, args.working_directory)
+ if last_commit == args.last_commit:
+ return download_binaries(args.binary_name_stem, args.working_directory)
+ else:
+ return False
+
+
+if __name__ == "__main__":
+ # use output to indicate results
+ # echo "result=${result}" >> "$GITHUB_OUTPUT"
+ with open(os.environ.get("GITHUB_OUTPUT"), 'a') as output_file:
+ output_file.write("result=hit\n" if main() else "result=not-hit\n")
+
+ # always return 0
+ sys.exit(0)
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_docker_images.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_docker_images.yml
new file mode 100644
index 000000000..819bf94c3
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_docker_images.yml
@@ -0,0 +1,89 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: Create and publish Docker images
+
+on:
+ workflow_call:
+ inputs:
+ upload_url:
+ description: upload binary assets to the URL of release
+ type: string
+ required: true
+ ver_num:
+ description: a semantic version number.
+ type: string
+ required: true
+
+jobs:
+ build-and-push-images:
+ runs-on: ubuntu-22.04
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ - name: Build and save Docker image(wasm-debug-server:${{ inputs.ver_num }}) to tar file
+ run: |
+ docker build -t wasm-debug-server:${{ inputs.ver_num }} .
+ docker save -o wasm-debug-server.tar wasm-debug-server:${{ inputs.ver_num }}
+ working-directory: test-tools/wamr-ide/WASM-Debug-Server/Docker
+
+ - name: compress the tar file
+ run: |
+ tar czf wasm-debug-server-${{ inputs.ver_num }}.tar.gz wasm-debug-server.tar
+ zip wasm-debug-server-${{ inputs.ver_num }}.zip wasm-debug-server.tar
+ working-directory: test-tools/wamr-ide/WASM-Debug-Server/Docker
+
+ - 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: test-tools/wamr-ide/WASM-Debug-Server/Docker/wasm-debug-server-${{ inputs.ver_num }}.tar.gz
+ asset_name: wasm-debug-server-${{ inputs.ver_num }}.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: test-tools/wamr-ide/WASM-Debug-Server/Docker/wasm-debug-server-${{ inputs.ver_num }}.zip
+ asset_name: wasm-debug-server-${{ inputs.ver_num }}.zip
+ asset_content_type: application/zip
+
+ - name: Build and save Docker image(wasm-toolchain:${{ inputs.ver_num }}) to tar file
+ run: |
+ docker build -t wasm-toolchain:${{ inputs.ver_num }} .
+ docker save -o wasm-toolchain.tar wasm-toolchain:${{ inputs.ver_num }}
+ working-directory: test-tools/wamr-ide/WASM-Toolchain/Docker
+
+ - name: compress the tar file
+ run: |
+ tar czf wasm-toolchain-${{ inputs.ver_num }}.tar.gz wasm-toolchain.tar
+ zip wasm-toolchain-${{ inputs.ver_num }}.zip wasm-toolchain.tar
+ working-directory: test-tools/wamr-ide/WASM-Toolchain/Docker
+
+ - 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: test-tools/wamr-ide/WASM-Toolchain/Docker/wasm-toolchain-${{ inputs.ver_num }}.tar.gz
+ asset_name: wasm-toolchain-${{ inputs.ver_num }}.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: test-tools/wamr-ide/WASM-Toolchain/Docker/wasm-toolchain-${{ inputs.ver_num }}.zip
+ asset_name: wasm-toolchain-${{ inputs.ver_num }}.zip
+ asset_content_type: application/zip
+
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_iwasm_release.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_iwasm_release.yml
new file mode 100644
index 000000000..64aa9a92c
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_iwasm_release.yml
@@ -0,0 +1,108 @@
+# 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: workfing 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
+
+jobs:
+ build:
+ runs-on: ${{ inputs.runner }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: get cached LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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
+ run: |
+ cmake -S . -B build \
+ -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
+ cmake --build build --config Release --parallel 4
+ working-directory: ${{ inputs.cwd }}
+
+ - name: compress the binary
+ run: |
+ tar czf iwasm-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz iwasm
+ zip iwasm-${{ 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-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz
+ asset_name: iwasm-${{ 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-${{ inputs.ver_num }}-${{ inputs.runner }}.zip
+ asset_name: iwasm-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_llvm_libraries.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_llvm_libraries.yml
new file mode 100644
index 000000000..7ef1dd63f
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_llvm_libraries.yml
@@ -0,0 +1,91 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: Reusable workflow-build_llvm_libraries
+
+on:
+ workflow_call:
+ inputs:
+ os:
+ required: true
+ type: string
+ arch:
+ required: true
+ type: string
+ outputs:
+ cache_key:
+ description: "A cached key of LLVM libraries"
+ value: ${{ jobs.build_llvm_libraries.outputs.key}}
+
+jobs:
+ build_llvm_libraries:
+ runs-on: ${{ inputs.os }}
+ outputs:
+ key: ${{ steps.create_lib_cache_key.outputs.key}}
+
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: install dependencies
+ run: /usr/bin/env python3 -m pip install -r requirements.txt
+ working-directory: build-scripts
+
+ - name: retrive the last commit ID
+ id: get_last_commit
+ run: echo "last_commit=$(GH_TOKEN=${{ secrets.GITHUB_TOKEN }} /usr/bin/env python3 ./build_llvm.py --llvm-ver)" >> $GITHUB_OUTPUT
+ working-directory: build-scripts
+
+ # Bump the prefix number to evict all previous caches and
+ # enforce a clean build, in the unlikely case that some
+ # weird build error occur and llvm/build becomes a potential
+ # suspect.
+ - name: form the cache key of libraries
+ id: create_lib_cache_key
+ run: echo "key=0-llvm-libraries-${{ inputs.os }}-${{ inputs.arch }}-${{ steps.get_last_commit.outputs.last_commit }}" >> $GITHUB_OUTPUT
+
+ - name: Cache LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: ${{ steps.create_lib_cache_key.outputs.key}}
+
+ - uses: actions/cache@v3
+ with:
+ path: ~/.ccache
+ key: 0-ccache-${{ inputs.os }}-${{ steps.get_last_commit.outputs.last_commit }}
+ restore-keys: |
+ 0-ccache-${{ inputs.os }}
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && inputs.os == 'ubuntu-20.04'
+
+ - uses: actions/cache@v3
+ with:
+ path: ~/.cache/ccache
+ key: 0-ccache-${{ inputs.os }}-${{ steps.get_last_commit.outputs.last_commit }}
+ restore-keys: |
+ 0-ccache-${{ inputs.os }}
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && inputs.os == 'ubuntu-22.04'
+
+ - run: sudo apt install -y ccache ninja-build
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && startsWith(inputs.os, 'ubuntu')
+
+ - uses: actions/cache@v3
+ with:
+ path: ~/Library/Caches/ccache
+ key: 0-ccache-${{ inputs.os }}-${{ steps.get_last_commit.outputs.last_commit }}
+ restore-keys: |
+ 0-ccache-${{ inputs.os }}
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && startsWith(inputs.os, 'macos')
+
+ - run: brew install ccache ninja
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true' && startsWith(inputs.os, 'macos')
+
+ - name: Build LLVM libraries
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: /usr/bin/env python3 ./build_llvm.py --arch ${{ inputs.arch }}
+ working-directory: build-scripts
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_lldb.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_lldb.yml
new file mode 100644
index 000000000..ba491ad3a
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_lldb.yml
@@ -0,0 +1,197 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: build wamr lldb
+
+on:
+ workflow_call:
+ inputs:
+ arch:
+ description: arch of the release
+ type: string
+ required: false
+ default: x86_64
+ runner:
+ description: OS of compilation
+ type: string
+ required: true
+ upload_url:
+ description: upload binary assets to the URL of release
+ type: string
+ required: true
+ ver_num:
+ description: a semantic version number
+ type: string
+ required: true
+
+jobs:
+ try_reuse:
+ uses: ./.github/workflows/reuse_latest_release_binaries.yml
+ with:
+ binary_name_stem: "wamr-lldb-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}"
+ last_commit: "ea63ba4bd010c2285623ad4acc0262a4d63bcfea"
+ the_path: "./build-scripts/lldb-wasm.patch"
+ upload_url: ${{ inputs.upload_url }}
+
+ build:
+ needs: try_reuse
+ if: needs.try_reuse.outputs.result != 'hit'
+ runs-on: ${{ inputs.runner }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Cache build
+ id: lldb_build_cache
+ uses: actions/cache@v3
+ with:
+ path: |
+ ./core/deps/llvm-project/build/bin
+ ./core/deps/llvm-project/build/include
+ ./core/deps/llvm-project/build/lib
+ ./core/deps/llvm-project/build/libexec
+ ./core/deps/llvm-project/build/share
+ ./core/deps/llvm-project/lldb/tools/
+ ./core/deps/llvm-project/wamr-lldb/
+ key: ${{inputs.arch}}-${{ inputs.runner }}-lldb_build
+
+ - name: setup xcode macos
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
+ uses: maxim-lobanov/setup-xcode@v1
+ with:
+ xcode-version: latest-stable
+
+ # Remove xCode command line tools, to prevent duplicate symbol compilation failures
+ - name: install utils macos
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
+ run: |
+ brew install swig cmake ninja libedit
+ sudo rm -rf /Library/Developer/CommandLineTools
+
+ - name: intsall utils ubuntu
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'ubuntu')
+ run: sudo apt update && sudo apt-get install -y lld ninja-build
+
+ # `git clone` takes ~7m
+ - name: download llvm
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true'
+ run: |
+ wget https://github.com/llvm/llvm-project/archive/1f27fe6128769f00197925c3b8f6abb9d0e5cd2e.zip
+ unzip -q 1f27fe6128769f00197925c3b8f6abb9d0e5cd2e.zip
+ mv llvm-project-1f27fe6128769f00197925c3b8f6abb9d0e5cd2e llvm-project
+ working-directory: core/deps/
+
+ - name: apply wamr patch
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true'
+ run: |
+ git init
+ git config user.email "action@github.com"
+ git config user.name "github action"
+ git apply ../../../build-scripts/lldb-wasm.patch
+ working-directory: core/deps/llvm-project
+
+ - name: build lldb ubuntu
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'ubuntu')
+ run: |
+ echo "start to build lldb..."
+ mkdir -p wamr-lldb
+ cmake -S ./llvm -B build \
+ -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=../wamr-lldb \
+ -DCMAKE_BUILD_TYPE:STRING="Release" \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
+ -DLLVM_ENABLE_PROJECTS="clang;lldb" \
+ -DLLVM_TARGETS_TO_BUILD:STRING="X86;WebAssembly" \
+ -DLLVM_BUILD_BENCHMARKS:BOOL=OFF \
+ -DLLVM_BUILD_DOCS:BOOL=OFF \
+ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
+ -DLLVM_BUILD_TESTS:BOOL=OFF \
+ -DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
+ -DLLVM_INCLUDE_DOCS:BOOL=OFF \
+ -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
+ -DLLVM_INCLUDE_TESTS:BOOL=OFF \
+ -DLLVM_ENABLE_BINDINGS:BOOL=OFF \
+ -DLLVM_ENABLE_LIBXML2:BOOL=ON \
+ -DLLDB_ENABLE_PYTHON:BOOL=OFF \
+ -DLLVM_ENABLE_LLD:BOOL=ON
+ cmake --build build --target lldb install --parallel $(nproc)
+ working-directory: core/deps/llvm-project
+
+ - name: build lldb macos
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
+ run: |
+ echo "start to build lldb..."
+ mkdir -p wamr-lldb
+ cmake -S ./llvm -B build \
+ -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=../wamr-lldb \
+ -DCMAKE_BUILD_TYPE:STRING="Release" \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
+ -DLLVM_ENABLE_PROJECTS="clang;lldb" \
+ -DLLVM_TARGETS_TO_BUILD:STRING="X86;WebAssembly" \
+ -DLLVM_BUILD_BENCHMARKS:BOOL=OFF \
+ -DLLVM_BUILD_DOCS:BOOL=OFF \
+ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
+ -DLLVM_BUILD_TESTS:BOOL=OFF \
+ -DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
+ -DLLVM_INCLUDE_DOCS:BOOL=OFF \
+ -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
+ -DLLVM_INCLUDE_TESTS:BOOL=OFF \
+ -DLLVM_BUILD_BENCHMARKS:BOOL=OFF \
+ -DLLVM_BUILD_DOCS:BOOL=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
+ -DLLVM_ENABLE_BINDINGS:BOOL=OFF \
+ -DLLVM_ENABLE_LIBXML2:BOOL=ON \
+ -DLLDB_ENABLE_PYTHON:BOOL=OFF \
+ -DLLDB_BUILD_FRAMEWORK:BOOL=OFF
+ cmake --build build --target lldb install --parallel $(nproc)
+ working-directory: core/deps/llvm-project
+
+ - name: pack a distribution
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true'
+ run: |
+ mkdir -p wamr-lldb/bin
+ mkdir -p wamr-lldb/lib
+ cp build/bin/lldb* wamr-lldb/bin
+ cp lldb/tools/lldb-vscode/package.json wamr-lldb
+ cp -r lldb/tools/lldb-vscode/syntaxes/ wamr-lldb
+ working-directory: core/deps/llvm-project
+
+ - name: pack ubuntu specific libraries
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'ubuntu')
+ run: |
+ cp build/lib/liblldb*.so wamr-lldb/lib
+ cp build/lib/liblldb*.so.* wamr-lldb/lib
+ working-directory: core/deps/llvm-project
+
+ - name: pack macos specific libraries
+ if: steps.lldb_build_cache.outputs.cache-hit != 'true' && contains(inputs.runner, 'macos')
+ run: |
+ cp build/lib/liblldb*.dylib wamr-lldb/lib
+ working-directory: core/deps/llvm-project
+
+ - name: compress the binary
+ run: |
+ tar czf wamr-lldb-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamr-lldb
+ zip -r wamr-lldb-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamr-lldb
+ working-directory: core/deps/llvm-project
+
+ - 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: core/deps/llvm-project/wamr-lldb-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz
+ asset_name: wamr-lldb-${{ 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: core/deps/llvm-project/wamr-lldb-${{ inputs.ver_num }}-${{ inputs.runner }}.zip
+ asset_name: wamr-lldb-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_sdk.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_sdk.yml
new file mode 100644
index 000000000..fff6d85df
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_sdk.yml
@@ -0,0 +1,78 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: build wamr-sdk
+
+on:
+ workflow_call:
+ inputs:
+ arch:
+ description: arch of the release
+ type: string
+ required: false
+ default: x86_64
+ config_file:
+ description: warm-sdk config file path
+ type: string
+ required: true
+ runner:
+ description: OS of compilation
+ type: string
+ required: true
+ upload_url:
+ description: upload binary assets to the URL of release
+ type: string
+ required: true
+ ver_num:
+ description: a semantic version number
+ type: string
+ required: true
+ wasi_sdk_url:
+ description: download WASI_SDK from this URL
+ type: string
+ required: true
+
+jobs:
+ build:
+ runs-on: ${{ inputs.runner }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: download and install wasi-sdk
+ run: |
+ cd /opt
+ basename=$(basename ${{ inputs.wasi_sdk_url }})
+ sudo wget --progress=dot:giga ${{ inputs.wasi_sdk_url }}
+ sudo tar -xzf ${basename}
+ sudo rm ${basename}
+ sudo mv wasi-sdk-* wasi-sdk
+
+ - name: generate wamr-sdk release
+ run: |
+ ./build_sdk.sh -n wamr-sdk -x $(pwd)/${{ inputs.config_file }}
+ working-directory: wamr-sdk
+
+ - name: compress the binary
+ run: |
+ tar czf wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamr-sdk
+ zip -r wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamr-sdk
+ working-directory: wamr-sdk/out
+
+ - 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: wamr-sdk/out/wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz
+ asset_name: wamr-sdk-${{ 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: wamr-sdk/out/wamr-sdk-${{ inputs.ver_num }}-${{ inputs.runner }}.zip
+ asset_name: wamr-sdk-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_vscode_ext.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_vscode_ext.yml
new file mode 100644
index 000000000..297dc9b9e
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamr_vscode_ext.yml
@@ -0,0 +1,73 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: build wamr-ide vscode extension
+
+on:
+ workflow_call:
+ inputs:
+ upload_url:
+ description: upload binary assets to the URL of release
+ type: string
+ required: true
+ ver_num:
+ description: a semantic version number.
+ type: string
+ required: true
+
+jobs:
+ build:
+ runs-on: ubuntu-22.04
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Use Node.js 14.x
+ uses: actions/setup-node@v3
+ with:
+ node-version: 14.x
+
+ - name: set vscode extension to correct version
+ run: |
+ npm install -g json
+ json -I -f package.json -e "this.version=\"${{ inputs.ver_num }}\""
+ working-directory: test-tools/wamr-ide/VSCode-Extension
+
+ - name: generate wamr ide vscode extension
+ run: |
+ npm install -g vsce
+ rm -rf node_modules
+ npm install
+ vsce package
+ working-directory: test-tools/wamr-ide/VSCode-Extension
+
+ - name: publish wamr ide vscode extension to the vsce marketplace
+ if: ${{ github.repository == 'bytecodealliance/wasm-micro-runtime' }}
+ run: |
+ vsce publish -p ${{ secrets.TOKEN }}
+ working-directory: test-tools/wamr-ide/VSCode-Extension
+
+ - name: compress the vscode extension
+ run: |
+ mv wamride-*.vsix wamr-ide.vsix
+ tar czf wamr-ide-${{ inputs.ver_num }}.tar.gz wamr-ide.vsix
+ zip wamr-ide-${{ inputs.ver_num }}.zip wamr-ide.vsix
+ working-directory: test-tools/wamr-ide/VSCode-Extension
+
+ - 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: test-tools/wamr-ide/VSCode-Extension/wamr-ide-${{ inputs.ver_num }}.tar.gz
+ asset_name: wamr-ide-${{ inputs.ver_num }}.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: test-tools/wamr-ide/VSCode-Extension/wamr-ide-${{ inputs.ver_num }}.zip
+ asset_name: wamr-ide-${{ inputs.ver_num }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamrc.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamrc.yml
new file mode 100644
index 000000000..11c5de9ba
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/build_wamrc.yml
@@ -0,0 +1,86 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: build wamrc
+
+on:
+ workflow_call:
+ inputs:
+ arch:
+ description: arch of the release
+ type: string
+ required: false
+ default: x86_64
+ llvm_cache_key:
+ description: the cache key of llvm libraries
+ type: string
+ required: true
+ release:
+ description: it is a part of the release process
+ type: boolean
+ 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
+
+jobs:
+ build:
+ runs-on: ${{ inputs.runner }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: get cached LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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 wamrc binary release
+ run: |
+ cmake -S . -B build
+ cmake --build build --config Release --parallel 4
+ working-directory: wamr-compiler
+
+ - name: compress the binary
+ if: inputs.release
+ run: |
+ tar czf wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz wamrc
+ zip wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.zip wamrc
+ working-directory: wamr-compiler/build
+
+ - name: upload release tar.gz
+ if: inputs.release
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ inputs.upload_url }}
+ asset_path: wamr-compiler/build/wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.tar.gz
+ asset_name: wamrc-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.tar.gz
+ asset_content_type: application/x-gzip
+
+ - name: upload release zip
+ if: inputs.release
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ inputs.upload_url }}
+ asset_path: wamr-compiler/build/wamrc-${{ inputs.ver_num }}-${{ inputs.runner }}.zip
+ asset_name: wamrc-${{ inputs.ver_num }}-${{ inputs.arch }}-${{ inputs.runner }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/coding_guidelines.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/coding_guidelines.yml
new file mode 100644
index 000000000..259e84fe5
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/coding_guidelines.yml
@@ -0,0 +1,28 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: Coding Guidelines
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ compliance_job:
+ runs-on: ubuntu-latest
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ # github.event.pull_request.base.label = ${{github.repository}}/${{github.base_ref}}
+ - name: Run Coding Guidelines Checks
+ run: /usr/bin/env python3 ./ci/coding_guidelines_check.py --commits ${{ github.event.pull_request.base.sha }}..HEAD
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_android_ubuntu.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_android_ubuntu.yml
new file mode 100644
index 000000000..2a57f6219
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_android_ubuntu.yml
@@ -0,0 +1,645 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: compilation on android, ubuntu-20.04, ubuntu-22.04
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_android_ubuntu.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # will be triggered on push events
+ push:
+ branches:
+ - main
+ - "dev/**"
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_android_ubuntu.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+env:
+ # For BUILD
+ AOT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ FAST_INTERP_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ FAST_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ LLVM_LAZY_JIT_BUILD_OPTIONS: " -DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
+ LLVM_EAGER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0"
+ MULTI_TIER_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
+ # For Spec Test
+ DEFAULT_TEST_OPTIONS: "-s spec -b -P"
+ MULTI_MODULES_TEST_OPTIONS: "-s spec -b -M -P"
+ SIMD_TEST_OPTIONS: "-s spec -b -S -P"
+ THREADS_TEST_OPTIONS: "-s spec -b -p -P"
+ X86_32_TARGET_TEST_OPTIONS: "-m x86_32 -P"
+ WASI_TEST_OPTIONS: "-s wasi_certification -w"
+
+jobs:
+ build_llvm_libraries_on_ubuntu_2004:
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-20.04"
+ arch: "X86"
+
+ build_llvm_libraries_on_ubuntu_2204:
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-22.04"
+ arch: "X86"
+
+ build_wamrc:
+ needs:
+ [build_llvm_libraries_on_ubuntu_2004, build_llvm_libraries_on_ubuntu_2204]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ include:
+ - os: ubuntu-20.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ - os: ubuntu-22.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ # since jobs.id can't contain the dot character
+ # it is hard to use `format` to assemble the cache key
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Build wamrc
+ run: |
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ working-directory: wamr-compiler
+
+ build_iwasm_linux_gcc4_8:
+ runs-on: ubuntu-latest
+ container:
+ image: ubuntu:14.04
+ strategy:
+ matrix:
+ make_options_run_mode: [
+ # Running mode
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ $FAST_JIT_BUILD_OPTIONS,
+ ]
+ make_options_feature: [
+ # Features
+ "-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
+ "-DWAMR_BUILD_DEBUG_AOT=1",
+ "-DWAMR_BUILD_DEBUG_INTERP=1",
+ "-DWAMR_BUILD_DUMP_CALL_STACK=1",
+ "-DWAMR_BUILD_LIB_PTHREAD=1",
+ "-DWAMR_BUILD_LIB_WASI_THREADS=1",
+ "-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1",
+ "-DWAMR_BUILD_MINI_LOADER=1",
+ "-DWAMR_BUILD_MEMORY_PROFILING=1",
+ "-DWAMR_BUILD_MULTI_MODULE=1",
+ "-DWAMR_BUILD_PERF_PROFILING=1",
+ "-DWAMR_BUILD_REF_TYPES=1",
+ "-DWAMR_BUILD_SIMD=1",
+ "-DWAMR_BUILD_TAIL_CALL=1",
+ "-DWAMR_DISABLE_HW_BOUND_CHECK=1",
+ ]
+ exclude:
+ # uncompatiable feature and platform
+ # uncompatiable mode and feature
+ # MULTI_MODULE only on INTERP mode
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ # SIMD only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ # DEBUG_INTERP only on CLASSIC INTERP mode
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ # DEBUG_AOT only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # TODO: DEBUG_AOT on JIT
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # MINI_LOADER only on INTERP mode
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Install dependencies
+ run: apt update && apt install -y make g++-4.8 gcc-4.8 wget git
+
+ - name: Install cmake
+ run: |
+ wget https://github.com/Kitware/CMake/releases/download/v3.26.1/cmake-3.26.1-linux-x86_64.tar.gz -O cmake.tar.gz
+ tar xzf cmake.tar.gz
+ cp cmake-3.26.1-linux-x86_64/bin/cmake /usr/local/bin
+ cp -r cmake-3.26.1-linux-x86_64/share/cmake-3.26/ /usr/local/share/
+
+ - name: Build iwasm
+ run: |
+ mkdir build && cd build
+ cmake .. ${{ matrix.make_options_run_mode }} ${{ matrix.make_options_feature }} -DCMAKE_C_COMPILER=gcc-4.8 -DCMAKE_CXX_COMPILER=g++-4.8
+ cmake --build . --config Release --parallel 4
+ working-directory: product-mini/platforms/linux
+
+ build_iwasm:
+ needs:
+ [build_llvm_libraries_on_ubuntu_2004, build_llvm_libraries_on_ubuntu_2204]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ make_options_run_mode: [
+ # Running mode
+ $AOT_BUILD_OPTIONS,
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ $FAST_JIT_BUILD_OPTIONS,
+ $LLVM_LAZY_JIT_BUILD_OPTIONS,
+ $LLVM_EAGER_JIT_BUILD_OPTIONS,
+ $MULTI_TIER_JIT_BUILD_OPTIONS,
+ ]
+ make_options_feature: [
+ # Features
+ "-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
+ "-DWAMR_BUILD_DEBUG_AOT=1",
+ "-DWAMR_BUILD_DEBUG_INTERP=1",
+ "-DWAMR_BUILD_DUMP_CALL_STACK=1",
+ "-DWAMR_BUILD_LIB_PTHREAD=1",
+ "-DWAMR_BUILD_LIB_WASI_THREADS=1",
+ "-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1",
+ "-DWAMR_BUILD_MINI_LOADER=1",
+ "-DWAMR_BUILD_MEMORY_PROFILING=1",
+ "-DWAMR_BUILD_MULTI_MODULE=1",
+ "-DWAMR_BUILD_PERF_PROFILING=1",
+ "-DWAMR_BUILD_REF_TYPES=1",
+ "-DWAMR_BUILD_SIMD=1",
+ "-DWAMR_BUILD_TAIL_CALL=1",
+ "-DWAMR_DISABLE_HW_BOUND_CHECK=1",
+ ]
+ os: [ubuntu-20.04, ubuntu-22.04]
+ platform: [android, linux]
+ exclude:
+ # uncompatiable feature and platform
+ # uncompatiable mode and feature
+ # MULTI_MODULE only on INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ # SIMD only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ # DEBUG_INTERP only on CLASSIC INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ # DEBUG_AOT only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # TODO: DEBUG_AOT on JIT
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # MINI_LOADER only on INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ # Fast-JIT and Multi-Tier-JIT mode don't support android(X86-32)
+ - make_options_run_mode: $FAST_JIT_BUILD_OPTIONS
+ platform: android
+ - make_options_run_mode: $MULTI_TIER_JIT_BUILD_OPTIONS
+ platform: android
+ # only test andorid on ubuntu latest
+ - os: ubuntu-20.04
+ platform: android
+ include:
+ - os: ubuntu-20.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ - os: ubuntu-22.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ # only download llvm cache when needed
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS')
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS') && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Build iwasm
+ run: |
+ mkdir build && cd build
+ cmake .. ${{ matrix.make_options_run_mode }} ${{ matrix.make_options_feature }}
+ cmake --build . --config Release --parallel 4
+ working-directory: product-mini/platforms/${{ matrix.platform }}
+
+ build_samples_wasm_c_api:
+ needs:
+ [
+ build_iwasm,
+ build_llvm_libraries_on_ubuntu_2004,
+ build_llvm_libraries_on_ubuntu_2204,
+ build_wamrc,
+ ]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ sanitizer: ["", "ubsan"]
+ make_options: [
+ # Running mode
+ $AOT_BUILD_OPTIONS,
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ $FAST_JIT_BUILD_OPTIONS,
+ $LLVM_LAZY_JIT_BUILD_OPTIONS,
+ $LLVM_EAGER_JIT_BUILD_OPTIONS,
+ $MULTI_TIER_JIT_BUILD_OPTIONS,
+ ]
+ os: [ubuntu-20.04, ubuntu-22.04]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
+ ]
+ include:
+ - os: ubuntu-20.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ - os: ubuntu-22.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS')) && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: Build wamrc
+ if: (!endsWith(matrix.make_options, '_INTERP_BUILD_OPTIONS'))
+ run: |
+ mkdir build && cd build
+ cmake -DSANITIZER="${{matrix.sanitizer}}" ..
+ cmake --build . --config Release --parallel 4
+ working-directory: wamr-compiler
+
+ - name: Build Sample [wasm-c-api]
+ run: |
+ VERBOSE=1
+ cmake -S . -B build ${{ matrix.make_options }} -DSANITIZER="${{matrix.sanitizer}}"
+ cmake --build build --config Release --parallel 4
+ ctest --test-dir build --output-on-failure
+ working-directory: samples/wasm-c-api
+
+ build_samples_others:
+ needs: [build_iwasm]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-20.04, ubuntu-22.04]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wasi-sdk
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wasi_sdk_release }}
+ sudo tar -xzf wasi-sdk-*.tar.gz
+ sudo mv wasi-sdk-20.0 wasi-sdk
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: Build Sample [basic]
+ run: |
+ cd samples/basic
+ ./build.sh
+ ./run.sh
+
+ - name: Build Sample [file]
+ run: |
+ cd samples/file
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./src/iwasm -f wasm-app/file.wasm -d .
+
+ - name: Build Sample [multi-thread]
+ run: |
+ cd samples/multi-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/test.wasm
+
+ - name: Build Sample [multi-module]
+ run: |
+ cd samples/multi-module
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./multi_module
+
+ - name: Build Sample [spawn-thread]
+ run: |
+ cd samples/spawn-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./spawn_thread
+
+ - name: Build Sample [ref-types]
+ run: |
+ cd samples/ref-types
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./hello
+
+ - name: Build Sample [simple]
+ run: |
+ ./build.sh -p host-interp
+ python3 ./sample_test_run.py $(pwd)/out
+ exit $?
+ working-directory: ./samples/simple
+
+ - name: Build Sample [wasi-threads]
+ run: |
+ cd samples/wasi-threads
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/no_pthread.wasm
+
+ test:
+ needs:
+ [
+ build_iwasm,
+ build_llvm_libraries_on_ubuntu_2004,
+ build_llvm_libraries_on_ubuntu_2204,
+ build_wamrc,
+ ]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-20.04, ubuntu-22.04]
+ running_mode:
+ [
+ "classic-interp",
+ "fast-interp",
+ "jit",
+ "aot",
+ "fast-jit",
+ "multi-tier-jit",
+ ]
+ test_option:
+ [
+ $DEFAULT_TEST_OPTIONS,
+ $MULTI_MODULES_TEST_OPTIONS,
+ $SIMD_TEST_OPTIONS,
+ $THREADS_TEST_OPTIONS,
+ $WASI_TEST_OPTIONS,
+ ]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz",
+ ]
+ include:
+ - os: ubuntu-20.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ ubuntu_version: "20.04"
+ - os: ubuntu-22.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+ ubuntu_version: "22.04"
+ exclude:
+ # uncompatiable modes and features
+ # classic-interp and fast-interp don't support simd
+ - running_mode: "classic-interp"
+ test_option: $SIMD_TEST_OPTIONS
+ - running_mode: "fast-interp"
+ test_option: $SIMD_TEST_OPTIONS
+ # aot and jit don't support multi module
+ - running_mode: "aot"
+ test_option: $MULTI_MODULES_TEST_OPTIONS
+ - running_mode: "jit"
+ test_option: $MULTI_MODULES_TEST_OPTIONS
+ # fast-jit doesn't support multi module, simd
+ - running_mode: "fast-jit"
+ test_option: $MULTI_MODULES_TEST_OPTIONS
+ - running_mode: "fast-jit"
+ test_option: $SIMD_TEST_OPTIONS
+ # multi-tier-jit doesn't support multi module, simd
+ - running_mode: "multi-tier-jit"
+ test_option: $MULTI_MODULES_TEST_OPTIONS
+ - running_mode: "multi-tier-jit"
+ test_option: $SIMD_TEST_OPTIONS
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wasi-sdk
+ if: matrix.test_option == '$WASI_TEST_OPTIONS'
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wasi_sdk_release }}
+ sudo tar -xzf wasi-sdk-*.tar.gz
+ sudo mv wasi-sdk-20.0 wasi-sdk
+
+ - name: set env variable(if llvm are used)
+ if: matrix.running_mode == 'aot' || matrix.running_mode == 'jit' || matrix.running_mode == 'multi-tier-jit'
+ run: echo "USE_LLVM=true" >> $GITHUB_ENV
+
+ - name: set env variable(if x86_32 test needed)
+ if: >
+ (matrix.test_option == '$DEFAULT_TEST_OPTIONS' || matrix.test_option == '$THREADS_TEST_OPTIONS'
+ || matrix.test_option == '$WASI_TEST_OPTIONS')
+ && matrix.running_mode != 'fast-jit' && matrix.running_mode != 'jit' && matrix.running_mode != 'multi-tier-jit'
+ run: echo "TEST_ON_X86_32=true" >> $GITHUB_ENV
+
+ #only download llvm libraries in jit and aot mode
+ - name: Get LLVM libraries
+ if: env.USE_LLVM == 'true'
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: env.USE_LLVM == 'true' && steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: install jq JSON processor
+ if: matrix.running_mode == 'aot' && matrix.test_option == '$WASI_TEST_OPTIONS'
+ run: sudo apt-get update && sudo apt install -y jq
+
+ - name: Build WASI thread tests
+ if: matrix.test_option == '$WASI_TEST_OPTIONS'
+ run: bash build.sh
+ working-directory: ./core/iwasm/libraries/lib-wasi-threads/test/
+
+ - name: build socket api tests
+ if: matrix.test_option == '$WASI_TEST_OPTIONS'
+ run: bash build.sh
+ working-directory: ./core/iwasm/libraries/lib-socket/test/
+
+ - name: run tests
+ timeout-minutes: 10
+ run: ./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
+ working-directory: ./tests/wamr-test-suites
+
+ #only install x32 support libraries when to run x86_32 cases
+ - name: install x32 support libraries
+ if: env.TEST_ON_X86_32 == 'true'
+ run:
+ # Add another apt repository as some packages cannot
+ # be downloaded with the github default repository
+ sudo curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc &&
+ sudo apt-add-repository https://packages.microsoft.com/ubuntu/${{ matrix.ubuntu_version }}/prod &&
+ sudo apt-get update &&
+ sudo apt install -y g++-multilib lib32gcc-9-dev
+
+ - name: run tests x86_32
+ timeout-minutes: 10
+ if: env.TEST_ON_X86_32 == 'true'
+ run: ./test_wamr.sh ${{ env.X86_32_TARGET_TEST_OPTIONS }} ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
+ working-directory: ./tests/wamr-test-suites
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_macos.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_macos.yml
new file mode 100644
index 000000000..aaa97d038
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_macos.yml
@@ -0,0 +1,331 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: compilation on macos-latest
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_macos.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # will be triggered on push events
+ push:
+ branches:
+ - main
+ - "dev/**"
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_macos.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+env:
+ AOT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ FAST_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ LLVM_LAZY_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
+ 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:
+ build_llvm_libraries:
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "macos-latest"
+ arch: "X86"
+
+ build_wamrc:
+ needs: [build_llvm_libraries]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ include:
+ - os: macos-latest
+ llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Build wamrc
+ run: |
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ working-directory: wamr-compiler
+
+ build_iwasm:
+ needs: [build_llvm_libraries]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ make_options_run_mode: [
+ # Running mode
+ $AOT_BUILD_OPTIONS,
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ $LLVM_LAZY_JIT_BUILD_OPTIONS,
+ $LLVM_EAGER_JIT_BUILD_OPTIONS,
+ ]
+ make_options_feature: [
+ # Features
+ "-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
+ # doesn't support
+ #"-DWAMR_BUILD_DEBUG_AOT=1",
+ "-DWAMR_BUILD_DEBUG_INTERP=1",
+ "-DWAMR_BUILD_DUMP_CALL_STACK=1",
+ "-DWAMR_BUILD_LIB_PTHREAD=1",
+ "-DWAMR_BUILD_LIB_WASI_THREADS=1",
+ "-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1",
+ "-DWAMR_BUILD_MINI_LOADER=1",
+ "-DWAMR_BUILD_MEMORY_PROFILING=1",
+ "-DWAMR_BUILD_MULTI_MODULE=1",
+ "-DWAMR_BUILD_PERF_PROFILING=1",
+ "-DWAMR_BUILD_REF_TYPES=1",
+ "-DWAMR_BUILD_SIMD=1",
+ "-DWAMR_BUILD_TAIL_CALL=1",
+ "-DWAMR_DISABLE_HW_BOUND_CHECK=1",
+ ]
+ os: [macos-latest]
+ platform: [darwin]
+ exclude:
+ # uncompatiable feature and platform
+ # uncompatiable mode and feature
+ # MULTI_MODULE only on INTERP mode
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ # SIMD only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_SIMD=1"
+ # DEBUG_INTERP only on CLASSIC INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_INTERP=1"
+ # DEBUG_AOT only on JIT/AOT mode
+ - make_options_run_mode: $CLASSIC_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $FAST_INTERP_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # TODO: DEBUG_AOT on JIT
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_DEBUG_AOT=1"
+ # MINI_LOADER only on INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $LLVM_LAZY_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ - make_options_run_mode: $LLVM_EAGER_JIT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ include:
+ - os: macos-latest
+ llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ # only download llvm cache when needed
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS')
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: endsWith(matrix.make_options_run_mode, '_JIT_BUILD_OPTIONS') && (steps.retrieve_llvm_libs.outputs.cache-hit != 'true')
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Build iwasm
+ run: |
+ mkdir build && cd build
+ cmake .. ${{ matrix.make_options_run_mode }} ${{ matrix.make_options_feature }}
+ cmake --build . --config Release --parallel 4
+ working-directory: product-mini/platforms/${{ matrix.platform }}
+
+ build_samples_wasm_c_api:
+ needs: [build_iwasm]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ make_options: [
+ # Running modes supported
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ # Running modes unsupported
+ #$LLVM_LAZY_JIT_BUILD_OPTIONS,
+ #$LLVM_EAGER_JIT_BUILD_OPTIONS,
+ #$AOT_BUILD_OPTIONS,
+ ]
+ os: [macos-latest]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz",
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: Build Sample [wasm-c-api]
+ run: |
+ cmake -S . -B build ${{ matrix.make_options }}
+ cmake --build build --config Release --parallel 4
+ ctest --test-dir build
+ working-directory: samples/wasm-c-api
+
+ build_samples_others:
+ needs: [build_iwasm]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [macos-latest]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-macos-12.tar.gz",
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wasi-sdk
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wasi_sdk_release }}
+ sudo tar -xzf wasi-sdk-*.tar.gz
+ sudo mv wasi-sdk-20.0 wasi-sdk
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: Build Sample [basic]
+ run: |
+ cd samples/basic
+ ./build.sh
+ ./run.sh
+
+ - name: Build Sample [file]
+ run: |
+ cd samples/file
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./src/iwasm -f wasm-app/file.wasm -d .
+
+ - name: Build Sample [multi-thread]
+ run: |
+ cd samples/multi-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/test.wasm
+
+ - name: Build Sample [multi-module]
+ run: |
+ cd samples/multi-module
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./multi_module
+
+ - name: Build Sample [spawn-thread]
+ run: |
+ cd samples/spawn-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./spawn_thread
+
+ - name: Build Sample [ref-types]
+ run: |
+ cd samples/ref-types
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./hello
+
+ - name: Build Sample [wasi-threads]
+ run: |
+ cd samples/wasi-threads
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/no_pthread.wasm
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_nuttx.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_nuttx.yml
new file mode 100644
index 000000000..f338c8dea
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_nuttx.yml
@@ -0,0 +1,134 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: compilation on nuttx
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ paths:
+ - ".github/workflows/compilation_on_nuttx.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # will be triggered on push events
+ push:
+ branches:
+ - main
+ - "dev/**"
+ paths:
+ - ".github/workflows/compilation_on_nuttx.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+env:
+ WASI_SDK_PATH: "/opt/wasi-sdk"
+
+jobs:
+ build_iwasm_on_nuttx:
+ runs-on: ubuntu-22.04
+ strategy:
+ matrix:
+ nuttx_board_config: [
+ # x64
+ "boards/sim/sim/sim/configs/nsh",
+ # cortex-m0
+ "boards/arm/rp2040/raspberrypi-pico/configs/nsh",
+ # cortex-m7
+ "boards/arm/stm32h7/nucleo-h743zi/configs/nsh",
+ # riscv32imac
+ "boards/risc-v/qemu-rv/rv-virt/configs/nsh",
+ # riscv64imac
+ "boards/risc-v/qemu-rv/rv-virt/configs/nsh64",
+ # riscv64gc
+ "boards/risc-v/k210/maix-bit/configs/nsh",
+ ]
+ wamr_config_option: [
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_FAST=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_FAST=y\\nCONFIG_INTERPRETERS_WAMR_LIBC_WASI=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_FAST=y\\nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_CLASSIC=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_CLASSIC=y\\nCONFIG_INTERPRETERS_WAMR_LIBC_WASI=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_CLASSIC=y\\nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_AOT=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_FAST=y\\n",
+ "CONFIG_INTERPRETERS_WAMR=y\\nCONFIG_INTERPRETERS_WAMR_CLASSIC=y\\n",
+ ]
+
+ steps:
+ - name: Install Utilities
+ run: |
+ sudo apt install -y kconfig-frontends-nox genromfs
+ pip3 install pyelftools
+ pip3 install cxxfilt
+
+ - name: Install ARM Compilers
+ if: contains(matrix.nuttx_board_config, 'arm')
+ run: sudo apt install -y gcc-arm-none-eabi
+
+ - name: Install RISC-V Compilers
+ if: contains(matrix.nuttx_board_config, 'risc-v')
+ run: |
+ curl -L https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz > riscv.tar.gz
+ tar xvf riscv.tar.gz
+ echo "$PWD/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_PATH
+
+ - name: Install WASI-SDK
+ run: |
+ curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz > wasi-sdk.tar.gz
+ tar xvf wasi-sdk.tar.gz
+ sudo mv wasi-sdk-* /opt/wasi-sdk
+
+ - name: Checkout NuttX
+ uses: actions/checkout@v3
+ with:
+ repository: apache/incubator-nuttx
+ path: nuttx
+
+ - name: Checkout NuttX Apps
+ uses: actions/checkout@v3
+ with:
+ repository: apache/incubator-nuttx-apps
+ path: apps
+
+ - name: Checkout WAMR
+ uses: actions/checkout@v3
+ with:
+ repository: ${{ github.repository }}
+ path: apps/interpreters/wamr/wamr
+
+ - name: Enable WAMR for NuttX
+ run: |
+ find nuttx/boards -name defconfig | xargs sed -i '$a\CONFIG_EOL_IS_LF=y\nCONFIG_PSEUDOFS_SOFTLINKS=y\n${{ matrix.wamr_config_option }}'
+ find nuttx/boards/sim -name defconfig | xargs sed -i '$a\CONFIG_LIBM=y\n'
+
+ - name: Build
+ run: |
+ cd nuttx
+ tools/configure.sh ${{ matrix.nuttx_board_config }}
+ make -j$(nproc) EXTRAFLAGS=-Werror
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_sgx.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_sgx.yml
new file mode 100644
index 000000000..f17261118
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_sgx.yml
@@ -0,0 +1,401 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: compilation on SGX
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_sgx.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # will be triggered on push events
+ push:
+ branches:
+ - main
+ - "dev/**"
+ paths:
+ - ".github/workflows/build_llvm_libraries.yml"
+ - ".github/workflows/compilation_on_sgx.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+env:
+ AOT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ CLASSIC_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ FAST_INTERP_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=0 -DWAMR_BUILD_FAST_INTERP=1 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_JIT=0 -DWAMR_BUILD_LAZY_JIT=0"
+ LLVM_LAZY_JIT_BUILD_OPTIONS: "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=0 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1"
+ 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:
+ build_llvm_libraries:
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-20.04"
+ arch: "X86"
+
+ build_iwasm:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ make_options_run_mode: [
+ # Running modes supported
+ $AOT_BUILD_OPTIONS,
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ # Running modes unsupported
+ #$LLVM_LAZY_JIT_BUILD_OPTIONS,
+ #$LLVM_EAGER_JIT_BUILD_OPTIONS,
+ ]
+ make_options_feature: [
+ # Features
+ "-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
+ # doesn't support
+ # "-DWAMR_BUILD_DEBUG_AOT=1",
+ # "-DWAMR_BUILD_DEBUG_INTERP=1",
+ "-DWAMR_BUILD_DUMP_CALL_STACK=1",
+ "-DWAMR_BUILD_LIB_PTHREAD=1",
+ "-DWAMR_BUILD_LIB_WASI_THREADS=1",
+ "-DWAMR_BUILD_LOAD_CUSTOM_SECTION=1",
+ "-DWAMR_BUILD_MINI_LOADER=1",
+ "-DWAMR_BUILD_MEMORY_PROFILING=1",
+ "-DWAMR_BUILD_MULTI_MODULE=1",
+ "-DWAMR_BUILD_PERF_PROFILING=1",
+ "-DWAMR_BUILD_REF_TYPES=1",
+ # doesn't support
+ # "-DWAMR_BUILD_SIMD=1",
+ "-DWAMR_BUILD_TAIL_CALL=1",
+ "-DWAMR_DISABLE_HW_BOUND_CHECK=1",
+ "-DWAMR_BUILD_SGX_IPFS=1",
+ ]
+ os: [ubuntu-20.04]
+ platform: [linux-sgx]
+ exclude:
+ # uncompatiable mode and feature
+ # MULTI_MODULE only on INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MULTI_MODULE=1"
+ # MINI_LOADER only on INTERP mode
+ - make_options_run_mode: $AOT_BUILD_OPTIONS
+ make_options_feature: "-DWAMR_BUILD_MINI_LOADER=1"
+ steps:
+ - name: install SGX SDK and necessary libraries
+ run: |
+ mkdir -p /opt/intel
+ cd /opt/intel
+ wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
+ chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
+ wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
+ sudo apt update
+ sudo apt install -y libsgx-launch libsgx-urts
+ source /opt/intel/sgxsdk/environment
+
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Build iwasm
+ run: |
+ mkdir build && cd build
+ cmake .. ${{ matrix.make_options_run_mode }} ${{ matrix.make_options_feature }}
+ cmake --build . --config Release --parallel 4
+ working-directory: product-mini/platforms/${{ matrix.platform }}
+
+ build_wamrc:
+ needs: [build_llvm_libraries]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ include:
+ - os: ubuntu-20.04
+ llvm_cache_key: ${{ needs.build_llvm_libraries.outputs.cache_key }}
+ steps:
+ - name: install SGX SDK and necessary libraries
+ run: |
+ mkdir -p /opt/intel
+ cd /opt/intel
+ wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
+ chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
+ wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
+ sudo apt update
+ sudo apt install -y libsgx-launch libsgx-urts
+ source /opt/intel/sgxsdk/environment
+
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Build wamrc
+ run: |
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ working-directory: wamr-compiler
+
+ build_samples_wasm_c_api:
+ needs: [build_iwasm]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ make_options: [
+ # Running modes supported
+ $CLASSIC_INTERP_BUILD_OPTIONS,
+ $FAST_INTERP_BUILD_OPTIONS,
+ # Running modes unsupported
+ #$LLVM_EAGER_JIT_BUILD_OPTIONS,
+ #$LLVM_LAZY_JIT_BUILD_OPTIONS,
+ #$AOT_BUILD_OPTIONS,
+ ]
+ os: [ubuntu-20.04]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: install SGX SDK and necessary libraries
+ run: |
+ mkdir -p /opt/intel
+ cd /opt/intel
+ wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
+ chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
+ wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
+ sudo apt update
+ sudo apt install -y libsgx-launch libsgx-urts
+ source /opt/intel/sgxsdk/environment
+
+ - name: Build Sample [wasm-c-api]
+ run: |
+ cmake -S . -B build ${{ matrix.make_options }}
+ cmake --build build --config Release --parallel 4
+ ctest --test-dir build
+ working-directory: samples/wasm-c-api
+
+ build_samples_others:
+ needs: [build_iwasm]
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-20.04]
+ wasi_sdk_release:
+ [
+ "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz",
+ ]
+ wabt_release:
+ [
+ "https://github.com/WebAssembly/wabt/releases/download/1.0.31/wabt-1.0.31-ubuntu.tar.gz",
+ ]
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: download and install wasi-sdk
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wasi_sdk_release }}
+ sudo tar -xzf wasi-sdk-*.tar.gz
+ sudo mv wasi-sdk-19.0 wasi-sdk
+
+ - name: download and install wabt
+ run: |
+ cd /opt
+ sudo wget ${{ matrix.wabt_release }}
+ sudo tar -xzf wabt-1.0.31-*.tar.gz
+ sudo mv wabt-1.0.31 wabt
+
+ - name: build wasi-libc (needed for wasi-threads)
+ run: |
+ mkdir wasi-libc
+ cd wasi-libc
+ git init
+ # "Fix a_store operation in atomic.h" commit on main branch
+ git fetch https://github.com/WebAssembly/wasi-libc \
+ 1dfe5c302d1c5ab621f7abf04620fae92700fd22
+ git checkout FETCH_HEAD
+ make \
+ AR=/opt/wasi-sdk/bin/llvm-ar \
+ NM=/opt/wasi-sdk/bin/llvm-nm \
+ CC=/opt/wasi-sdk/bin/clang \
+ THREAD_MODEL=posix
+ working-directory: core/deps
+
+ - name: install SGX SDK and necessary libraries
+ run: |
+ mkdir -p /opt/intel
+ cd /opt/intel
+ wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
+ chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
+ wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
+ sudo apt update
+ sudo apt install -y libsgx-launch libsgx-urts
+ source /opt/intel/sgxsdk/environment
+
+ - name: Build Sample [basic]
+ run: |
+ cd samples/basic
+ ./build.sh
+ ./run.sh
+
+ - name: Build Sample [file]
+ run: |
+ cd samples/file
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./src/iwasm -f wasm-app/file.wasm -d .
+
+ - name: Build Sample [multi-thread]
+ run: |
+ cd samples/multi-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/test.wasm
+
+ - name: Build Sample [multi-module]
+ run: |
+ cd samples/multi-module
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./multi_module
+
+ - name: Build Sample [spawn-thread]
+ run: |
+ cd samples/spawn-thread
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./spawn_thread
+
+ - name: Build Sample [ref-types]
+ run: |
+ cd samples/ref-types
+ mkdir build && cd build
+ cmake ..
+ cmake --build . --config Release --parallel 4
+ ./hello
+
+ - name: Build Sample [wasi-threads]
+ run: |
+ cd samples/wasi-threads
+ mkdir build && cd build
+ cmake -DWASI_SYSROOT=`pwd`/../../../core/deps/wasi-libc/sysroot ..
+ cmake --build . --config Release --parallel 4
+ ./iwasm wasm-apps/no_pthread.wasm
+
+ spec_test_default:
+ needs: [build_iwasm, build_llvm_libraries, build_wamrc]
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ running_mode: ["classic-interp", "fast-interp", "aot"]
+ test_option: ["-x -p -s spec -b -P", "-x -p -s spec -S -b -P"]
+ llvm_cache_key: ["${{ needs.build_llvm_libraries.outputs.cache_key }}"]
+ # classic-interp and fast-interp don't support simd
+ exclude:
+ - running_mode: "classic-interp"
+ test_option: "-x -p -s spec -S -b -P"
+ - running_mode: "fast-interp"
+ test_option: "-x -p -s spec -S -b -P"
+
+ steps:
+ - name: checkout
+ uses: actions/checkout@v3
+
+ - name: Get LLVM libraries
+ if: matrix.running_mode == 'aot'
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: matrix.running_mode == 'aot' && steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: install SGX SDK and necessary libraries
+ run: |
+ mkdir -p /opt/intel
+ cd /opt/intel
+ wget https://download.01.org/intel-sgx/sgx-linux/2.15/distro/ubuntu20.04-server/sgx_linux_x64_sdk_2.15.100.3.bin
+ chmod +x sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'yes' | ./sgx_linux_x64_sdk_2.15.100.3.bin
+ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list
+ wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -
+ sudo apt update
+ sudo apt install -y libsgx-launch libsgx-urts
+
+ - name: run spec tests
+ run: |
+ source /opt/intel/sgxsdk/environment
+ ./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
+ working-directory: ./tests/wamr-test-suites
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_windows.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_windows.yml
new file mode 100644
index 000000000..0d38e8ae5
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/compilation_on_windows.yml
@@ -0,0 +1,77 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: compilation on windows-latest
+
+on:
+ # will be triggered on PR events
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ paths:
+ - ".github/workflows/compilation_on_windows.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # will be triggered on push events
+ push:
+ branches:
+ - main
+ - "dev/**"
+ paths:
+ - ".github/workflows/compilation_on_windows.yml"
+ - "build-scripts/**"
+ - "core/**"
+ - "!core/deps/**"
+ - "product-mini/**"
+ - "samples/**"
+ - "!samples/workload/**"
+ - "tests/wamr-test-suites/**"
+ - "wamr-compiler/**"
+ - "wamr-sdk/**"
+ # allow to be triggered manually
+ workflow_dispatch:
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ build_options: [
+ "-DWAMR_BUILD_AOT=1 -DWAMR_BUILD_INTERP=0",
+ "-DWAMR_BUILD_AOT=0",
+ "-DWAMR_BUILD_TAIL_CALL=1",
+ "-DWAMR_BUILD_CUSTOM_NAME_SECTION=1",
+ "-DWAMR_DISABLE_HW_BOUND_CHECK=1",
+ "-DWAMR_BUILD_REF_TYPES=1",
+ "-DWAMR_BUILD_SIMD=1",
+ "-DWAMR_BUILD_DEBUG_INTERP=1",
+ "-DWAMR_BUILD_LIB_PTHREAD=1",
+ "-DWAMR_BUILD_LIB_WASI_THREADS=1"
+ ]
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: clone uvwasi library
+ run: |
+ cd core/deps
+ git clone https://github.com/nodejs/uvwasi.git
+ - name: Build iwasm
+ run: |
+ cd product-mini/platforms/windows
+ mkdir build && cd build
+ cmake .. ${{ matrix.build_options }}
+ cmake --build . --config Release --parallel 4
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/create_tag.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/create_tag.yml
new file mode 100644
index 000000000..3a145bf04
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/create_tag.yml
@@ -0,0 +1,68 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: create a tag
+
+on:
+ workflow_call:
+ outputs:
+ minor_version:
+ description: "the new version is a minor version or a major version"
+ value: ${{ jobs.create_tag.outputs.minor_version}}
+ new_ver:
+ description: "the new version"
+ value: ${{ jobs.create_tag.outputs.new_ver}}
+ new_tag:
+ description: "the new tag just created"
+ value: ${{ jobs.create_tag.outputs.new_tag}}
+
+jobs:
+ create_tag:
+ runs-on: ubuntu-latest
+ outputs:
+ minor_version: ${{ steps.preparation.outputs.minor_version }}
+ new_ver: ${{ steps.preparation.outputs.new_ver }}
+ new_tag: ${{ steps.preparation.outputs.new_tag }}
+
+ steps:
+ - uses: actions/checkout@v3
+ # Full git history is needed to get a proper list of commits and tags
+ with:
+ fetch-depth: 0
+
+ - name: prepare
+ id: preparation
+ run: |
+ # show latest 3 versions
+ git tag --list WAMR-*.*.* --sort=committerdate --format="%(refname:short)" | tail -n 3
+ # compare latest git tag and semantic version definition
+ result=$(python3 ./.github/scripts/fetch_and_compare_version.py)
+ echo "script result is ${result}"
+ #
+ # return in a form like "WAMR-X.Y.Z,major_minor_change" or ",patch_change"
+ new_ver=$(echo "${result}" | awk -F',' '{print $1}')
+ diff_versioning=$(echo "${result}" | awk -F',' '{print $2}')
+ echo "next version is ${new_ver}, it ${diff_versioning}"
+ #
+ # set output
+ if [[ ${diff_versioning} == 'major_minor_change' ]];then
+ echo "minor_version=true" >> "$GITHUB_OUTPUT"
+ else
+ echo "minor_version=false" >> "$GITHUB_OUTPUT"
+ fi
+ #
+ #
+ if [[ -z ${new_ver} ]]; then
+ echo "::error::please indicate the right semantic version in core/version.h"
+ echo "new_ver=''" >> "$GITHUB_OUTPUT"
+ echo "new_tag=''" >> "$GITHUB_OUTPUT"
+ exit 1
+ else
+ echo "new_ver=${new_ver}" >> "$GITHUB_OUTPUT"
+ echo "new_tag=WAMR-${new_ver}" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: push tag
+ if: steps.preparation.outputs.new_tag != ''
+ run: |
+ git tag ${{ steps.preparation.outputs.new_tag }}
+ git push origin --force --tags
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/release_process.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/release_process.yml
new file mode 100644
index 000000000..4188b4d40
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/release_process.yml
@@ -0,0 +1,215 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: the binary release processes
+
+on:
+ workflow_dispatch:
+ inputs:
+ require_confirmation:
+ description: "If the process requires a confirmation"
+ type: boolean
+ required: false
+ default: false
+
+# Cancel any in-flight jobs for the same PR/branch so there's only one active
+# at a time
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ create_tag:
+ uses: ./.github/workflows/create_tag.yml
+
+ create_release:
+ needs: [create_tag]
+ runs-on: ubuntu-latest
+ outputs:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: prepare the release note
+ run: |
+ extract_result="$(python3 ./.github/scripts/extract_from_release_notes.py RELEASE_NOTES.md)"
+ echo "RELEASE_NOTE<<EOF" >> $GITHUB_ENV
+ echo "${extract_result}" >> $GITHUB_ENV
+ echo "EOF" >> $GITHUB_ENV
+
+ - name: create a release
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ needs.create_tag.outputs.new_tag }}
+ release_name: ${{ needs.create_tag.outputs.new_tag }}
+ prerelease: ${{ inputs.require_confirmation || needs.create_tag.outputs.minor_version }}
+ draft: false
+ body: ${{ env.RELEASE_NOTE }}
+
+ #
+ # LLVM_LIBRARIES
+ build_llvm_libraries_on_ubuntu_2004:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-20.04"
+ arch: "X86"
+
+ build_llvm_libraries_on_ubuntu_2204:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-22.04"
+ arch: "X86"
+
+ build_llvm_libraries_on_macos:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "macos-latest"
+ arch: "X86"
+
+ #
+ # WAMRC
+ release_wamrc_on_ubuntu_2004:
+ needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
+ uses: ./.github/workflows/build_wamrc.yml
+ with:
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ release: true
+ runner: ubuntu-20.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ release_wamrc_on_ubuntu_2204:
+ needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204 ]
+ uses: ./.github/workflows/build_wamrc.yml
+ with:
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+ release: true
+ runner: ubuntu-22.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver }}
+
+ release_wamrc_on_ubuntu_macos:
+ needs: [create_tag, create_release, build_llvm_libraries_on_macos]
+ uses: ./.github/workflows/build_wamrc.yml
+ with:
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
+ release: true
+ runner: macos-latest
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver }}
+
+ #
+ # IWASM
+ release_iwasm_on_ubuntu_2004:
+ needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2004]
+ uses: ./.github/workflows/build_iwasm_release.yml
+ with:
+ cwd: product-mini/platforms/linux
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2004.outputs.cache_key }}
+ runner: ubuntu-20.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ release_iwasm_on_ubuntu_2204:
+ needs: [create_tag, create_release, build_llvm_libraries_on_ubuntu_2204]
+ uses: ./.github/workflows/build_iwasm_release.yml
+ with:
+ cwd: product-mini/platforms/linux
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
+ runner: ubuntu-22.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ release_iwasm_on_macos:
+ needs: [create_tag, create_release, build_llvm_libraries_on_macos]
+ uses: ./.github/workflows/build_iwasm_release.yml
+ with:
+ cwd: product-mini/platforms/darwin
+ llvm_cache_key: ${{ needs.build_llvm_libraries_on_macos.outputs.cache_key }}
+ runner: macos-latest
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ #
+ # WAMR_SDK
+ release_wamr_sdk_on_ubuntu_2004:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_sdk.yml
+ with:
+ config_file: wamr_config_ubuntu_release.cmake
+ runner: ubuntu-20.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+ wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
+
+ release_wamr_sdk_on_ubuntu_2204:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_sdk.yml
+ with:
+ config_file: wamr_config_ubuntu_release.cmake
+ runner: ubuntu-22.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+ wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz
+
+ release_wamr_sdk_on_macos:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_sdk.yml
+ with:
+ config_file: wamr_config_macos_release.cmake
+ runner: macos-latest
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+ wasi_sdk_url: https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-macos.tar.gz
+
+ #
+ # vscode extension cross-platform
+ release_wamr_ide_vscode_ext:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_vscode_ext.yml
+ secrets: inherit
+ with:
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver }}
+
+ #
+ # vscode extension docker images package
+ release_wamr_ide_docker_images_package:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_docker_images.yml
+ with:
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver }}
+
+ #
+ # WAMR_LLDB
+ release_wamr_lldb_on_ubuntu_2004:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_lldb.yml
+ with:
+ runner: ubuntu-20.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ release_wamr_lldb_on_ubuntu_2204:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_lldb.yml
+ with:
+ runner: ubuntu-22.04
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
+
+ release_wamr_lldb_on_macos_universal:
+ needs: [create_tag, create_release]
+ uses: ./.github/workflows/build_wamr_lldb.yml
+ with:
+ runner: macos-latest
+ arch: universal
+ upload_url: ${{ needs.create_release.outputs.upload_url }}
+ ver_num: ${{ needs.create_tag.outputs.new_ver}}
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/reuse_latest_release_binaries.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/reuse_latest_release_binaries.yml
new file mode 100644
index 000000000..7f82672a6
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/reuse_latest_release_binaries.yml
@@ -0,0 +1,68 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+name: reuse binaries of the latest release if no more modification on the_path since last_commit
+
+on:
+ workflow_call:
+ inputs:
+ binary_name_stem:
+ type: string
+ required: true
+ last_commit:
+ type: string
+ required: true
+ the_path:
+ type: string
+ required: true
+ upload_url:
+ description: upload binary assets to the URL of release
+ type: string
+ required: true
+ outputs:
+ result:
+ value: ${{ jobs.build.outputs.result }}
+
+jobs:
+ reuse:
+ runs-on: ubuntu-latest
+ outputs:
+ result: ${{ steps.try_reuse.outputs.result }}
+ steps:
+ - uses: actions/checkout@v3
+ # Full git history is needed to get a proper list of commits and tags
+ with:
+ fetch-depth: 0
+
+ - name: try to reuse binaries
+ id: try_reuse
+ run: |
+ echo '::echo::on'
+ python3 ./.github/scripts/reuse_latest_release_binaries.py \
+ --binary_name_stem ${{ inputs.binary_name_stem }} \
+ --last_commit ${{ inputs.last_commit }} \
+ --the_path ${{ inputs.the_path }} .
+ ls -lh .
+
+ - run: echo ${{ steps.try_reuse.outputs.result }}
+
+ - name: upload release tar.gz
+ if: steps.try_reuse.outputs.result == 'hit'
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ inputs.upload_url }}
+ asset_path: ${{ inputs.binary_name_stem }}.tar.gz
+ asset_name: ${{ inputs.binary_name_stem }}.tar.gz
+ asset_content_type: application/x-gzip
+
+ - name: upload release zip
+ if: steps.try_reuse.outputs.result == 'hit'
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ inputs.upload_url }}
+ asset_path: ${{ inputs.binary_name_stem }}.zip
+ asset_name: ${{ inputs.binary_name_stem }}.zip
+ asset_content_type: application/zip
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/spec_test_on_nuttx.yml b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/spec_test_on_nuttx.yml
new file mode 100644
index 000000000..7b8403777
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/.github/workflows/spec_test_on_nuttx.yml
@@ -0,0 +1,145 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+name: spec test on nuttx
+
+on:
+ schedule:
+ - cron: '0 0 * * *'
+
+ workflow_dispatch:
+
+env:
+ LLVM_CACHE_SUFFIX: "build-llvm_libraries_ex"
+ WASI_SDK_PATH: "/opt/wasi-sdk"
+
+jobs:
+ build_llvm_libraries:
+ uses: ./.github/workflows/build_llvm_libraries.yml
+ with:
+ os: "ubuntu-22.04"
+ arch: "ARM RISCV AArch64"
+
+ spec_test_on_qemu:
+ runs-on: ${{ matrix.os }}
+ needs: [build_llvm_libraries]
+ strategy:
+ matrix:
+ os: [ubuntu-22.04]
+ nuttx_board_config: [
+ # cortex-a9
+ "boards/arm/imx6/sabre-6quad/configs/nsh",
+ # riscv32imac
+ "boards/risc-v/qemu-rv/rv-virt/configs/nsh",
+ # riscv64imac
+ # "boards/risc-v/qemu-rv/rv-virt/configs/nsh64",
+ ]
+ wamr_test_option: [
+ # "-t fast-interp",
+ "-t aot",
+ "-t aot -X"
+ ]
+ llvm_cache_key: [ "${{ needs.build_llvm_libraries.outputs.cache_key }}" ]
+ steps:
+ - name: Install Utilities
+ run: |
+ sudo apt install -y kconfig-frontends-nox genromfs
+
+ - name: Install ARM Compilers
+ if: contains(matrix.nuttx_board_config, 'arm')
+ run: sudo apt install -y gcc-arm-none-eabi
+
+ - name: Install RISC-V Compilers
+ if: contains(matrix.nuttx_board_config, 'risc-v')
+ run: |
+ curl -L https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz > riscv.tar.gz
+ tar xvf riscv.tar.gz
+ echo "$PWD/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_PATH
+
+ - name: Install WASI-SDK
+ run: |
+ curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-19/wasi-sdk-19.0-linux.tar.gz > wasi-sdk.tar.gz
+ tar xvf wasi-sdk.tar.gz
+ sudo mv wasi-sdk-* /opt/wasi-sdk
+
+ - name: Checkout NuttX
+ uses: actions/checkout@v3
+ with:
+ repository: apache/incubator-nuttx
+ path: nuttx
+
+ - name: Checkout NuttX Apps
+ uses: actions/checkout@v3
+ with:
+ repository: apache/incubator-nuttx-apps
+ path: apps
+
+ - name: Checkout WAMR
+ uses: actions/checkout@v3
+ with:
+ repository: ${{ github.repository }}
+ path: apps/interpreters/wamr/wamr
+
+ - name: Get LLVM libraries
+ id: retrieve_llvm_libs
+ uses: actions/cache@v3
+ 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: Quit if cache miss
+ if: steps.retrieve_llvm_libs.outputs.cache-hit != 'true'
+ run: echo "::error::can not get prebuilt llvm libraries" && exit 1
+
+ - name: Copy LLVM
+ run: cp -r core/deps/llvm apps/interpreters/wamr/wamr/core/deps/llvm
+
+ - name: Enable WAMR for NuttX
+ run: |
+ find nuttx/boards -name defconfig | xargs sed -i '$a\CONFIG_INTERPRETERS_WAMR=y\nCONFIG_INTERPRETERS_WAMR_STACKSIZE=32768\nCONFIG_INTERPRETERS_WAMR_AOT=y\nCONFIG_INTERPRETERS_WAMR_FAST=y\nCONFIG_INTERPRETERS_WAMR_LOG=y\nCONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN=y\nCONFIG_INTERPRETERS_WAMR_REF_TYPES=y\nCONFIG_INTERPRETERS_WAMR_ENABLE_SPEC_TEST=y\nCONFIG_INTERPRETERS_WAMR_SHARED_MEMORY=y\nCONFIG_INTERPRETERS_WAMR_BULK_MEMORY=y\n'
+ find nuttx/boards -name defconfig | xargs sed -i '$a\CONFIG_EOL_IS_LF=y\nCONFIG_ARM_SEMIHOSTING_HOSTFS=y\nCONFIG_ARM_SEMIHOSTING_HOSTFS_CACHE_COHERENCE=y\nCONFIG_RISCV_SEMIHOSTING_HOSTFS=y\nCONFIG_FS_HOSTFS=y\nCONFIG_LIBC_FLOATINGPOINT=y\n'
+
+ - name: Build wamrc
+ working-directory: apps/interpreters/wamr/wamr/wamr-compiler
+ run: |
+ cmake -Bbuild .
+ cmake --build build
+
+ - name: Build
+ run: |
+ cd nuttx
+ tools/configure.sh ${{ matrix.nuttx_board_config }}
+ make -j$(nproc)
+ echo "firmware=$PWD/nuttx" >> $GITHUB_ENV
+
+ - name: Test on ARM
+ if: endsWith(matrix.nuttx_board_config, 'sabre-6quad/configs/nsh')
+ run: |
+ curl -L https://github.com/xpack-dev-tools/qemu-arm-xpack/releases/download/v7.1.0-1/xpack-qemu-arm-7.1.0-1-linux-x64.tar.gz > xpack-qemu-arm.tar.gz
+ tar xvf xpack-qemu-arm.tar.gz
+ export PATH=$PATH:$PWD/xpack-qemu-arm-7.1.0-1/bin
+ cd apps/interpreters/wamr/wamr/tests/wamr-test-suites
+ ./test_wamr.sh -s spec ${{ matrix.wamr_test_option }} -m thumbv7_vfp -b -Q -P -F ${{ env.firmware }}
+
+ - name: Test on RISCV32
+ if: endsWith(matrix.nuttx_board_config, 'rv-virt/configs/nsh')
+ run: |
+ curl -L https://github.com/xpack-dev-tools/qemu-riscv-xpack/releases/download/v7.1.0-1/xpack-qemu-riscv-7.1.0-1-linux-x64.tar.gz > xpack-qemu-riscv.tar.gz
+ tar xvf xpack-qemu-riscv.tar.gz
+ export PATH=$PATH:$PWD/xpack-qemu-riscv-7.1.0-1/bin
+ cd apps/interpreters/wamr/wamr/tests/wamr-test-suites
+ ./test_wamr.sh -s spec ${{ matrix.wamr_test_option }} -m RISCV32 -b -Q -P -F ${{ env.firmware }}
+
+ - name: Test on RISCV64
+ if: endsWith(matrix.nuttx_board_config, 'rv-virt/configs/nsh64')
+ run: |
+ curl -L https://github.com/xpack-dev-tools/qemu-riscv-xpack/releases/download/v7.1.0-1/xpack-qemu-riscv-7.1.0-1-linux-x64.tar.gz > xpack-qemu-riscv.tar.gz
+ tar xvf xpack-qemu-riscv.tar.gz
+ export PATH=$PATH:$PWD/xpack-qemu-riscv-7.1.0-1/bin
+ cd apps/interpreters/wamr/wamr/tests/wamr-test-suites
+ ./test_wamr.sh -s spec ${{ matrix.wamr_test_option }} -m riscv64 -b -Q -P -F ${{ env.firmware }}