[CI] Bump llvm 11 to 18 for static code analysis (#3861) #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: test-install-script | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- master | |
paths: | |
- '.github/workflows/test-install-script.yml' | |
- 'utils/install.sh' | |
- 'utils/uninstall.sh' | |
- 'utils/install.py' | |
pull_request: | |
branches: | |
- master | |
paths: | |
- '.github/workflows/test-install-script.yml' | |
- 'utils/install.sh' | |
- 'utils/uninstall.sh' | |
- 'utils/install.py' | |
env: | |
INSTALL_PY_PATH: utils/install.py | |
jobs: | |
linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: CentOS 7 | |
host_runner: ubuntu-latest | |
package_manager: yum | |
docker_image: centos:7.9.2009 | |
python_package: python3 python2 | |
python2_ex: python2 | |
python3_ex: python3 | |
extra_setup_command: yum install -y which | |
fix_mirror: "centos7" | |
- name: Ubuntu 20.04 | |
host_runner: ubuntu-latest | |
package_manager: apt | |
docker_image: ubuntu:20.04 | |
python_package: python2 python3 | |
python2_ex: python2 | |
python3_ex: python3 | |
extra_setup_command: echo "No extra command" | |
fix_mirror: "" | |
- name: Ubuntu 18.04 | |
host_runner: ubuntu-latest | |
package_manager: apt | |
docker_image: ubuntu:18.04 | |
python_package: python3 python2.7 | |
python2_ex: python2.7 | |
python3_ex: python3 | |
extra_setup_command: echo "No extra command" | |
fix_mirror: "" | |
- name: Ubuntu 16.04 | |
host_runner: ubuntu-latest | |
package_manager: apt | |
docker_image: ubuntu:16.04 | |
python_package: python2.7 | |
python2_ex: python2.7 | |
python3_ex: python3.7 | |
extra_setup_command: apt update -y && apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget && wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz && tar xzf Python-3.7.4.tgz && cd Python-3.7.4 && ./configure && make -j && make install && cd .. | |
fix_mirror: "" | |
- name: manylinux2014 aarch64 | |
host_runner: linux-arm64-v2 | |
package_manager: yum | |
docker_image: wasmedge/wasmedge:manylinux2014_aarch64 | |
python_package: python2 python3 | |
python2_ex: python2 | |
python3_ex: python3 | |
extra_setup_command: echo "No extra command" | |
fix_mirror: "centos7aarch64" | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.host_runner }} | |
container: | |
image: ${{ matrix.docker_image }} | |
# For older OS like Ubuntu 16 & 18. | |
env: | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- if: ${{ matrix.fix_mirror == 'centos7' }} | |
name: Fix mirrors on manylinux2014 | |
# Reference: https://github.com/pypa/manylinux/pull/1628 | |
run: | | |
sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf | |
sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/*.repo | |
sed -i 's;^.*baseurl=http://mirror;baseurl=https://vault;g' /etc/yum.repos.d/*.repo | |
- if: ${{ matrix.fix_mirror == 'centos7aarch64' }} | |
name: Fix mirrors on manylinux2014 for aarch64 | |
# Reference: https://github.com/pypa/manylinux/pull/1628 | |
run: | | |
sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/fastestmirror.conf | |
sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/*.repo | |
sed -i 's;^.*baseurl=http://mirror;baseurl=https://vault;g' /etc/yum.repos.d/*.repo | |
sed -i 's;/centos/7/;/altarch/7/;g' /etc/yum.repos.d/*.repo | |
- name: Install git and curl | |
run: | | |
${{ matrix.extra_setup_command }} | |
${{ matrix.package_manager }} update -y | |
${{ matrix.package_manager }} install -y git curl | |
- name: Install Python | |
run: | | |
${{ matrix.package_manager }} install -y ${{ matrix.python_package }} | |
- name: Install WasmEdge latest release | |
run: | | |
bash utils/install.sh -D | |
- name: Uninstall WasmEdge | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Install WasmEdge and wasi_nn-ggml plugin (0.13.4) | |
run: | | |
bash utils/install.sh -v 0.13.4 --plugins wasi_nn-ggml -D | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasiNN.so && echo "Pass: WASI_NN-ggml Plugin found" || (echo "Fail: WASI_NN-ggml not found" && exit 1) | |
- name: Uninstall WasmEdge with wasi_nn-ggml | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Install WasmEdge and wasi_nn-ggml-noavx plugin (0.13.5) | |
if: ${{ matrix.docker_image == 'ubuntu:20.04' }} | |
run: | | |
# Currently, we only support noavx build on ubuntu 20.04 | |
bash utils/install.sh -v 0.13.5 --plugins wasi_nn-ggml-noavx -D | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasiNN.so && echo "Pass: WASI_NN-ggml Plugin found" || (echo "Fail: WASI_NN-ggml not found" && exit 1) | |
- name: Uninstall WasmEdge with wasi_nn-ggml-noavx | |
if: ${{ matrix.docker_image == 'ubuntu:20.04' }} | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Install versions multiple times | |
run: | | |
bash utils/install.sh -D | |
bash utils/install.sh -v 0.13.1 -D | |
bash utils/install.sh -v 0.13.0 -D | |
- name: Uninstall WasmEdge | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Latest Release Check | |
run: | | |
_res_git_=$(git ls-remote --refs --tags "https://github.com/WasmEdge/WasmEdge.git" | cut -d '/' -f 3 | awk '{ if ($1 ~ /-/) print; else print $0"_" ; }' | sort --version-sort | sed 's/_$//' | grep -e '^[0-9]\+.[0-9]\+.[0-9]\+$' | tail -1) | |
_res_curl_=$(curl -w "%{url_effective}\n" -I -L -s -S https://github.com/WasmEdge/WasmEdge/releases/latest -o /dev/null | grep -Eo '[0-9]+.[0-9]+.[0-9]+*') | |
[ "$_res_git_" = "$_res_curl_" ] && echo "Pass: Fetched version equals release" || | |
(echo "Fail: Fetched version does not equal GitHub Ref\nFetched:$_res_git_\nCI:$_res_curl_" && exit 1) | |
macos_amd64: | |
name: macos-amd64 | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install zsh | |
run: | | |
eval $(/opt/homebrew/bin/brew shellenv) | |
brew install zsh | |
- name: Install WasmEdge latest release | |
run: | | |
bash utils/install.sh -D | |
- name: Uninstall WasmEdge | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Check for bashrc generation | |
run: | | |
rm -f ~/.bashrc | |
bash utils/install.sh -D | |
if ls -a ~ | grep .bashrc; then echo "Fail: Bashrc found" && exit 1; else echo "Pass: Bashrc not found"; fi; | |
- name: Check for bashrc generation | |
if: ${{ matrix.name == 'MacOS-arm64' }} | |
run: | | |
rm -rf ~/.zshenv | |
bash utils/install.sh -D | |
if ls -a ~ | grep .zshenv; then echo echo "Pass: zshenv found"; else "Fail: zshenv not found" && exit 1; fi; | |
- name: Uninstall WasmEdge | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Plugins Install check MacOS-x86 | |
run: | | |
bash utils/install.sh -v 0.13.1 --plugins wasmedge_tensorflow | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasmEdgeTensorflow.dylib && echo "Pass: Plugins found" || (echo "Fail: Plugins not found" && exit 1) | |
bash utils/install.sh -v 0.13.1 --plugins wasmedge_tensorflowlite | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasmEdgeTensorflowLite.dylib && echo "Pass: Plugins found" || (echo "Fail: Plugins not found" && exit 1) | |
- name: Latest Release Check | |
run: | | |
_res_git_=$(git ls-remote --refs --tags "https://github.com/WasmEdge/WasmEdge.git" | cut -d '/' -f 3 | awk '{ if ($1 ~ /-/) print; else print $0"_" ; }' | sort --version-sort | sed 's/_$//' | grep -e '^[0-9]\+.[0-9]\+.[0-9]\+$' | tail -1) | |
_res_curl_=$(curl -w "%{url_effective}\n" -I -L -s -S https://github.com/WasmEdge/WasmEdge/releases/latest -o /dev/null | grep -Eo '[0-9]+.[0-9]+.[0-9]+') | |
[ "$_res_git_" = "$_res_curl_" ] && echo "Pass: Fetched version equals release" || | |
(echo "Fail: Fetched version does not equal GitHub Ref\nFetched:$_res_git_\nCI:$_res_curl_" && exit 1) | |
macos-arm64: | |
name: macos-arm64 | |
runs-on: macos-14 | |
env: | |
SHELL: zsh | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install WasmEdge latest release | |
shell: zsh {0} | |
run: | | |
bash utils/install.sh -D | |
- name: Uninstall WasmEdge | |
shell: zsh {0} | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Check for bashrc generation | |
shell: zsh {0} | |
run: | | |
rm -f ~/.zshenv | |
bash utils/install.sh -D | |
if ls -a ~ | grep .zshenv; then echo "Pass: zshenv found"; else echo "Fail: zshenv not found" && exit 1; fi; | |
- name: Uninstall WasmEdge | |
shell: zsh {0} | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Plugins Install check MacOS-arm64 | |
shell: zsh {0} | |
run: | | |
bash utils/install.sh -v 0.13.1 --plugins wasmedge_tensorflow | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasmEdgeTensorflow.dylib && echo "Pass: Plugins found" || (echo "Fail: Plugins not found" && exit 1) | |
bash utils/install.sh -v 0.13.1 --plugins wasmedge_tensorflowlite | |
ls ~/.wasmedge/plugin/ | grep libwasmedgePluginWasmEdgeTensorflowLite.dylib && echo "Pass: Plugins found" || (echo "Fail: Plugins not found" && exit 1) | |
- name: Uninstall WasmEdge | |
shell: zsh {0} | |
run: | | |
bash utils/uninstall.sh -q -V | |
- name: Latest Release Check | |
shell: zsh {0} | |
run: | | |
_res_git_=$(git ls-remote --refs --tags "https://github.com/WasmEdge/WasmEdge.git" | cut -d '/' -f 3 | awk '{ if ($1 ~ /-/) print; else print $0"_" ; }' | sort --version-sort | sed 's/_$//' | grep -e '^[0-9]\+.[0-9]\+.[0-9]\+$' | tail -1) | |
_res_curl_=$(curl -w "%{url_effective}\n" -I -L -s -S https://github.com/WasmEdge/WasmEdge/releases/latest -o /dev/null | grep -Eo '[0-9]+.[0-9]+.[0-9]+') | |
[ "$_res_git_" = "$_res_curl_" ] && echo "Pass: Fetched version equals release" || | |
(echo "Fail: Fetched version does not equal GitHub Ref\nFetched:$_res_git_\nCI:$_res_curl_" && exit 1) |