Skip to content

[CI] Bump llvm 11 to 18 for static code analysis (#3861) #50

[CI] Bump llvm 11 to 18 for static code analysis (#3861)

[CI] Bump llvm 11 to 18 for static code analysis (#3861) #50

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)