Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
b540f97
ci: change commitlint footer-max-line-length to warning level to allo…
0yi0 Aug 18, 2025
952df44
feat(scripts): separate the openVINO installation and WasmEdge building
q82419 Jul 11, 2022
f5a7b4e
feat(scripts): add dependencies for wasi-crypto testing
q82419 Jul 19, 2022
b1541ad
feat(scripts): support PyTorch Backend of WASI-NN proposal
gusye1234 Aug 22, 2022
1385c6f
chore(scripts): refine the WASI-NN pytorch scripts
q82419 Sep 14, 2022
5700afd
feat(scripts): support tensorflow lite backend for WASI-NN
gusye1234 Oct 20, 2022
799b334
chore(scripts): update to OpenVINO 2023.0.0
Mash707 Jul 18, 2023
5373c8b
feat(scripts): implement OpenCV-mini
Jul 25, 2023
034f412
fix(scripts): fix OpenVINO dependencies
dm4 Sep 21, 2023
4be4d3a
chore(scripts): enable OpenVINO target again
hydai Oct 16, 2023
9429218
chore(scripts): upgrade OpenVINO to 2.0
CaptainVincent Jan 21, 2024
4a93a95
fix(scripts): update the printed messages to match the actual install…
CaptainVincent Feb 3, 2024
c4386e7
feat(scripts): initial support for FFmpeg
Hrushi20 Mar 12, 2024
414b580
chore(scripts): remove duplicated files
0yi0 May 22, 2024
b17246b
chore(scripts): upgrade OpenVino to 2024.2.0
egorus1 Jun 24, 2024
1fdd220
feat(docker): refactor manylinux_2_28 with docker bake
0yi0 Jul 9, 2024
c45df89
chore(lint): append EOF via linelint
hydai Jul 26, 2024
7070767
chore(scripts): fix piper dependencies
PeterD1524 Jul 30, 2024
ffa2171
feat(scripts): install onnxruntime in manylinux_2_28-plugins-deps for…
PeterD1524 Aug 5, 2024
253f51a
chore(scripts): update the file copyright text and lint
q82419 Aug 7, 2024
6383097
feat(docker,ubuntu): refactor with docker bake
0yi0 Aug 21, 2024
6108c0a
fix(docker,manylinux): fix warnings
0yi0 Aug 21, 2024
70e9f05
feat(docker,ubuntu): add ubuntu 20.04 to bake list
0yi0 Aug 26, 2024
44e2aa8
feat(docker,ubuntu): apply ubuntu version from bake file
0yi0 Aug 28, 2024
02cdebb
feat(docker,ubuntu): add aarch64 for ubuntu 20.04
0yi0 Aug 29, 2024
5039d35
feat(docker,ubuntu): add plugin dependencies
0yi0 Sep 12, 2024
e66c25d
refactor(docker): refine for caching
0yi0 Sep 12, 2024
50911f4
feat(docker,ubuntu): install latest CMake from Kitware APT Repository…
PeterD1524 Sep 21, 2024
daf88e7
feat(docker,ubuntu): refactor Ubuntu plugins
0yi0 Sep 23, 2024
faeeb24
feat(docker,ubuntu): pre-install CUDA
0yi0 Sep 24, 2024
444f533
chore(scripts): update pytorch version
LFsWang Oct 7, 2024
afb9ed6
feat(docker,ubuntu): fix OpenVINO apt source
0yi0 Oct 8, 2024
f2d5099
feat(docker,manylinux): disable pytorch c++11 abi on manylinux_2_28
LFsWang Oct 14, 2024
ffb66b5
feat(docker,ubuntu): add Ubuntu 24.04
0yi0 Sep 18, 2024
d312334
feat(docker,ubuntu): install FFmpeg 6.1 via apt on Ubuntu 24.04
0yi0 Nov 4, 2024
7576176
feat(docker): install deps to /usr/local instead of /root
0yi0 Nov 5, 2024
26f42e0
chore(docker): update pytorch version
LFsWang Dec 4, 2024
f86a431
chore: add sha256sum for manylinux_2_28
0yi0 Feb 16, 2024
b7bd1fe
chore(docker): update llvm, zstd, ninja, cmake in dockerfile and work…
ibmibmibm Dec 29, 2024
e051926
chore(scripts): update OpenVINO to 2025.0.0
LFsWang Feb 11, 2025
5a599d2
feat(scripts): add dependency installer for openvino-genai
LFsWang Mar 6, 2025
1921eb7
feat(scripts): install ChatTTS in ubuntu-plugins-deps for WASI-NN Cha…
PeterD1524 Apr 12, 2025
00fdddf
chore(lint): lint install-openvino-genai.sh
varun-r-mallya Apr 17, 2025
9d848c4
chore(docker,ubuntu): bump the llvm from 12 to 18 on Ubuntu 20.04
hydai Jun 4, 2025
c1724f4
refactor(docker,ubuntu): simplify image names for plugins
0yi0 Jul 4, 2025
1b394c4
chore(docker): fix path changed due to project relocation
0yi0 Aug 20, 2025
da5f4b5
refactor(docker,ubuntu): update targets
0yi0 Sep 4, 2025
aa6959e
ci(docker,ubuntu): add workflows to bake images
0yi0 Sep 4, 2025
ace9e16
ci(docker,manylinux): add workflows to bake images
0yi0 Sep 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .commitlintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ extends:
rules:
header-max-length: [1, 'always', 100]
body-max-line-length: [1, 'always', 100]
footer-max-line-length: [1, 'always', 100]
46 changes: 46 additions & 0 deletions .github/workflows/docker-manylinux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: manylinux

on:
pull_request:
branches: [main]
paths:
- 'docker-bake.manylinux.hcl'
- 'Dockerfile.manylinux*'
- 'scripts/**'

permissions: {}

jobs:
bake:
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
targets: x86_64,x86_64-plugins
host_runner: ubuntu-latest
- arch: aarch64
targets: aarch64,aarch64-plugins
host_runner: ubuntu-24.04-arm

name: manylinux_2_28 (${{ matrix.arch }})
runs-on: ${{ matrix.host_runner }}

steps:
- if: ${{ github.event_name != 'pull_request' }}
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Bake and Push
uses: docker/bake-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
files: docker-bake.manylinux.hcl
targets: ${{ matrix.targets }}
46 changes: 46 additions & 0 deletions .github/workflows/docker-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: ubuntu

on:
pull_request:
branches: [main]
paths:
- 'docker-bake.ubuntu.hcl'
- 'Dockerfile.ubuntu*'
- 'scripts/**'

permissions: {}

jobs:
bake:
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
targets: focal,jammy,noble,cuda
host_runner: ubuntu-latest
- arch: aarch64
targets: aarch64
host_runner: ubuntu-24.04-arm

name: Ubuntu (${{ matrix.arch }})
runs-on: ${{ matrix.host_runner }}

steps:
- if: ${{ github.event_name != 'pull_request' }}
name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Bake and Push
uses: docker/bake-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
files: docker-bake.ubuntu.hcl
targets: ${{ matrix.targets }}
58 changes: 58 additions & 0 deletions Dockerfile.manylinux_2_28-base
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# SPDX-FileCopyrightText: 2019-2024 Second State INC
ARG BASE_IMAGE="quay.io/pypa/manylinux_2_28_x86_64"
FROM ${BASE_IMAGE}

ADD scripts/SHA256SUM.manylinux_2_28 /root/

# See /opt/rh/gcc-toolset-13/enable
ENV PATH=/opt/rh/gcc-toolset-13/root/usr/bin${PATH:+:${PATH}}
ENV MANPATH=/opt/rh/gcc-toolset-13/root/usr/share/man${MANPATH:+:${MANPATH}}

Check warning on line 10 in Dockerfile.manylinux_2_28-base

View workflow job for this annotation

GitHub Actions / manylinux_2_28 (aarch64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$MANPATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

Check warning on line 10 in Dockerfile.manylinux_2_28-base

View workflow job for this annotation

GitHub Actions / manylinux_2_28 (x86_64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$MANPATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
ENV INFOPATH=/opt/rh/gcc-toolset-13/root/usr/share/info${INFOPATH:+:${INFOPATH}}

Check warning on line 11 in Dockerfile.manylinux_2_28-base

View workflow job for this annotation

GitHub Actions / manylinux_2_28 (aarch64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$INFOPATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

Check warning on line 11 in Dockerfile.manylinux_2_28-base

View workflow job for this annotation

GitHub Actions / manylinux_2_28 (x86_64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$INFOPATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
ENV LD_LIBRARY_PATH=/opt/rh/gcc-toolset-13/root/usr/lib64:/opt/rh/gcc-toolset-13/root/usr/lib:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
ENV PKG_CONFIG_PATH=/opt/rh/gcc-toolset-13/root/usr/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}

ARG LLVM_TARGETS LLVM_TRIPLE

RUN cd && (yum check-update || true) && yum install -y openssl-devel rpm-build cmake yum-utils && \
yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo && \
yum install -y gcc-toolset-13 && \
export CPU=$(/opt/python/cp311-cp311/bin/python3 -c \
'import multiprocessing; print(multiprocessing.cpu_count())') && \
export CFGFLAGS="--prefix=/opt/rh/gcc-toolset-13/root/usr --disable-shared --libdir=/opt/rh/gcc-toolset-13/root/usr/lib64" && \
curl -s -L -O --remote-name-all \
https://github.com/ninja-build/ninja/archive/refs/tags/v1.12.1.tar.gz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/llvm-19.1.5.src.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/lld-19.1.5.src.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/libunwind-19.1.5.src.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/cmake-19.1.5.src.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/third-party-19.1.5.src.tar.xz \
https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.5/clang-19.1.5.src.tar.xz && \
sha256sum -c SHA256SUM.manylinux_2_28 && \
gzip -dc v1.12.1.tar.gz | tar -xf - && \
xz -dc llvm-19.1.5.src.tar.xz | tar -xf - && \
xz -dc lld-19.1.5.src.tar.xz | tar -xf - && \
xz -dc libunwind-19.1.5.src.tar.xz | tar -xf - && \
xz -dc cmake-19.1.5.src.tar.xz | tar -xf - && \
xz -dc third-party-19.1.5.src.tar.xz | tar -xf - && \
xz -dc clang-19.1.5.src.tar.xz | tar -xf - && \
mkdir build && cd build && /opt/python/cp311-cp311/bin/python \
../ninja-1.12.1/configure.py --bootstrap \
--with-python=/opt/python/cp311-cp311/bin/python && \
cp -v ninja /opt/rh/gcc-toolset-13/root/usr/bin/ninja && cd - && rm -rf build && \
mv -v llvm-19.1.5.src llvm && \
mv -v lld-19.1.5.src lld && \
mv -v libunwind-19.1.5.src libunwind && \
mv -v cmake-19.1.5.src cmake && \
mv -v third-party-19.1.5.src third-party && \
mv -v clang-19.1.5.src clang && \
cmake -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/rh/gcc-toolset-13/root/usr \
-DPython3_ROOT_DIR=/opt/python/cp311-cp311 -DLLVM_LIBDIR_SUFFIX=64 \
-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS}" -DLLVM_ENABLE_PROJECTS="lld;clang" \
-DLLVM_DEFAULT_TARGET_TRIPLE="${LLVM_TRIPLE}" \
-DBUILD_SHARED_LIBS=OFF llvm && \
cmake --build build --target install && \
rm -rf build && rm -rf *

RUN yum clean all
44 changes: 44 additions & 0 deletions Dockerfile.manylinux_2_28-plugins-deps
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
ARG BASE_IMAGE="wasmedge/wasmedge:manylinux_2_28_x86_64"
FROM ${BASE_IMAGE} AS base

WORKDIR /root

### deps for x86_64 ###
FROM base AS deps-amd64
RUN cd && (yum check-update || true) && \
yum install -y wget unzip zlib-devel zlib-static elfutils-libelf-devel

COPY scripts/wasi-nn/install-pytorch.sh .
ENV PYTORCH_VERSION="2.5.1"
ENV PYTORCH_INSTALL_TO="/root"
ENV Torch_DIR="/root/libtorch"
RUN [ "/bin/bash", "install-pytorch.sh", "--disable-cxx11-abi" ]

### deps for aarch64 ###
FROM base AS deps-arm64
RUN cd && (yum check-update || true) && \
yum install -y wget unzip zlib-devel zlib-static

### deps for all ###
FROM deps-${TARGETARCH} AS final

COPY scripts/opencvmini/install-opencvmini.sh .
ENV OPENCV_VERSION="4.8.0"
RUN [ "/bin/bash", "install-opencvmini.sh" ]

COPY scripts/wasi-crypto/build-openssl.sh .
ENV OpenSSL_DIR="/root/openssl-1.1.1n/openssl"
RUN [ "/bin/bash", "build-openssl.sh" ]

COPY scripts/ffmpeg/install-ffmpeg-v6.0.sh .
RUN [ "/bin/bash", "install-ffmpeg-v6.0.sh" ]
ENV PKG_CONFIG_PATH=/root/FFmpeg-n6.0/output/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
ENV LD_LIBRARY_PATH=/root/FFmpeg-n6.0/output/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

ENV OPENVINO_VERSION="2025.0.0"
ENV OPENVINO_YEAR="2025"

COPY scripts/wasi-nn/install-onnxruntime.sh .
RUN [ "/bin/bash", "install-onnxruntime.sh" ]

RUN yum clean all
78 changes: 78 additions & 0 deletions Dockerfile.ubuntu-base
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
ARG UBUNTU_VER=22
FROM ubuntu:${UBUNTU_VER}.04 AS base

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y \
curl \
dpkg-dev \
g++ \
gcc \
git \
ninja-build \
software-properties-common \
wget \
zlib1g-dev

### deps for ubuntu 20.04 ###
FROM base AS deps-20

RUN curl -sSf https://apt.kitware.com/kitware-archive.sh | sh
RUN apt-get install -y cmake

RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
&& echo "deb http://apt.llvm.org/focal llvm-toolchain-focal-18 main" | tee /etc/apt/sources.list.d/llvm.list

RUN apt-get install -y \
llvm-18-dev \
liblld-18-dev \
libpolly-18-dev \
clang-18

RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 && \
update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-18 100

ENV CC=/usr/bin/clang-18
ENV CXX=/usr/bin/clang++-18

### deps for ubuntu 22.04 ###

Check warning on line 40 in Dockerfile.ubuntu-base

View workflow job for this annotation

GitHub Actions / Ubuntu (x86_64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$PKG_CONFIG_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
FROM base AS deps-22

Check warning on line 41 in Dockerfile.ubuntu-base

View workflow job for this annotation

GitHub Actions / Ubuntu (x86_64)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$LD_LIBRARY_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

RUN apt-get install -y cmake

RUN apt-get install -y \
llvm-15-dev \
liblld-15-dev \
clang-15

RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-15 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-15 100 && \
update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-15 100

ENV CC=/usr/bin/clang-15
ENV CXX=/usr/bin/clang++-15

### deps for ubuntu 24.04 ###
FROM base AS deps-24

RUN apt-get install -y cmake

RUN apt-get install -y \
llvm-18-dev \
liblld-18-dev \
libpolly-18-dev \
clang-18

RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 && \
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 && \
update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-18 100

ENV CC=/usr/bin/clang-18
ENV CXX=/usr/bin/clang++-18

### cleanup
FROM deps-${UBUNTU_VER} AS clean-apt

RUN rm -rf /var/lib/apt/lists/*
24 changes: 24 additions & 0 deletions Dockerfile.ubuntu-cuda
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ARG BASE_IMAGE=wasmedge/wasmedge:latest
FROM ${BASE_IMAGE} AS base

WORKDIR /root

ARG CUDA_KEYRING=cuda-keyring_1.1-1_all.deb
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/${CUDA_KEYRING} && \
dpkg -i ${CUDA_KEYRING} && \
rm -f ${CUDA_KEYRING}

ARG NVCC_VER=12-0
RUN apt-get update && \
apt-get install -y \
cuda-nvcc-${NVCC_VER} \
libcublas-dev-${NVCC_VER} \
pkg-config \
unzip

ENV CXXFLAGS="-Wno-error"

### cleanup
FROM base AS clean-apt

RUN rm -rf /var/lib/apt/lists/*
15 changes: 15 additions & 0 deletions Dockerfile.ubuntu-env
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
ARG BASE_IMAGE=wasmedge/wasmedge:latest
ARG TOOLCHAIN=clang
FROM ${BASE_IMAGE} AS base

### env for clang
FROM base AS deps-clang

### env for gcc
FROM base AS deps-gcc

ENV CC=/usr/bin/gcc
ENV CXX=/usr/bin/g++

### final
FROM deps-${TOOLCHAIN} AS final
Loading