diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9bd4298..704ade1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -61,18 +61,12 @@ jobs: if: ${{ needs.needs-build.outputs.needs-wasm == 'true' }} runs-on: ubuntu-latest container: - image: ghcr.io/faasm/examples-build:0.6.0_0.4.0 + image: ghcr.io/faasm/examples-build:0.8.0_0.4.0 steps: - name: "Checkout code" uses: actions/checkout@v4 with: submodules: true - - name: "Build Rabe and JWT" - run: | - export PATH=$PATH:/root/.cargo/env - rustup default stable - rustup target add wasm32-wasip1 - ./bin/inv_wrapper.sh rabe jwt - name: "Build OpenCV" run: ./bin/inv_wrapper.sh opencv - name: "Build FFmpeg" @@ -138,7 +132,7 @@ jobs: shell: bash env: FAASM_INI_FILE: ./faasm.ini - FAASM_VERSION: 0.29.0 + FAASM_VERSION: 0.33.0 FAASM_WASM_VM: ${{ matrix.faasm_wasm_vm }} steps: - uses: csegarragonz/set-compose-version-action@main @@ -312,14 +306,6 @@ jobs: - name: "Run FFmpeg check" timeout-minutes: 1 run: faasmctl invoke ffmpeg check - - name: "Run Rabe test" - if: "contains(env.FAASM_WASM_VM, 'wamr')" - timeout-minutes: 1 - run: faasmctl invoke rabe test - # - name: "Run JWT test" - # if: "contains(env.FAASM_WASM_VM, 'wamr')" - # timeout-minutes: 1 - # run: faasmctl invoke jwt test - name: "Print upload logs in case of failure" if: failure() run: faasmctl logs -s upload diff --git a/cpp b/cpp index a1c54c1..fc018f1 160000 --- a/cpp +++ b/cpp @@ -1 +1 @@ -Subproject commit a1c54c1c5e7e7ebac24fc069a9ba580dce313fe3 +Subproject commit fc018f1674ec203bcc11d6e4bd1ea9867d352cf8 diff --git a/docker/base.dockerfile b/docker/base.dockerfile index 9ee1048..1e03138 100644 --- a/docker/base.dockerfile +++ b/docker/base.dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 AS base +FROM ubuntu:24.04 AS base RUN apt update \ && apt install -y \ diff --git a/docker/build.dockerfile b/docker/build.dockerfile index bdc0fe9..01f9e0b 100644 --- a/docker/build.dockerfile +++ b/docker/build.dockerfile @@ -1,7 +1,7 @@ ARG CPP_VERSION ARG EXAMPLES_VERSION # Base image is not re-built often and tag may lag behind -FROM ghcr.io/faasm/examples-base:0.6.0_0.4.0 AS base +FROM ghcr.io/faasm/examples-base:0.8.0_0.4.0 AS base FROM ghcr.io/faasm/cpp-sysroot:${CPP_VERSION:-dead} SHELL ["/bin/bash", "-c"] @@ -10,23 +10,27 @@ ENV IN_DOCKER="on" # Copy built OpenMPI from previous step COPY --from=base /tmp/openmpi-4.1.0/ /tmp/openmpi-4.1.0/ +# Install OpenMP +ARG DEBIAN_FRONTEND=noninteractive +RUN apt update \ + && apt install -y --no-install-recommends \ + build-essential \ + curl \ + libomp-17-dev \ + unzip \ + && rm -rf /var/lib/apt/lists/* + # Install OpenMPI RUN cd /tmp/openmpi-4.1.0 \ && make install \ && cd /tmp \ && rm -rf /tmp/openmpi-4.1.0 /tmp/openmpi-4.1.0.tar.bz2 -# Install OpenMP -ARG DEBIAN_FRONTEND=noninteractive -RUN apt update \ - && apt install -y libomp-17-dev - # Install rust RUN curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y \ && source ~/.cargo/env \ && rustup target add wasm32-wasip1 - # Fetch the code and update submodules ARG EXAMPLES_VERSION RUN mkdir -p code \ @@ -46,9 +50,7 @@ RUN mkdir -p code \ && git submodule update --init -f examples/LULESH \ && git submodule update --init -f examples/libpng \ && git submodule update --init -f examples/polybench \ - && git submodule update --init -f examples/rabe \ - && git submodule update --init -f examples/tensorflow \ - && git submodule update --init -f examples/tless-jwt + && git submodule update --init -f examples/tensorflow # Build the examples and demo functions ENV PATH=${PATH}:/root/.cargo/bin @@ -64,7 +66,6 @@ RUN cd /code/examples \ && inv polybench --native \ # Build the WASM applications && inv ffmpeg \ - && inv jwt \ # ImageMagick needs libpng && inv libpng imagemagick \ && inv kernels \ @@ -73,14 +74,11 @@ RUN cd /code/examples \ && inv lammps --migration-net \ && inv lulesh \ && inv polybench \ - && inv rabe \ && inv tensorflow \ # These demo functions link with the cross-compiled static libraries && inv func ffmpeg check \ - && inv func jwt test \ && inv func lammps chain \ && inv func mpi migrate \ - && inv func rabe test \ && inv func tf check # Prepare bashrc diff --git a/examples/tensorflow b/examples/tensorflow index 0334529..9bb7e0b 160000 --- a/examples/tensorflow +++ b/examples/tensorflow @@ -1 +1 @@ -Subproject commit 0334529868a465243f3bdb8f61743376a60196d7 +Subproject commit 9bb7e0bab37abce965b0d616500a431eef955163 diff --git a/requirements.txt b/requirements.txt index 468a490..7221e46 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ black>=22.3.0 -faasmctl>=0.32.0 +faasmctl>=0.51.0 flake8>=4.0.1 invoke>=1.7.1 python-lsp-server[all]>=1.12.0 diff --git a/tasks/docker.py b/tasks/docker.py index 5e6c7f3..17261bc 100644 --- a/tasks/docker.py +++ b/tasks/docker.py @@ -55,9 +55,6 @@ def build(ctx, ctr, nocache=False, push=False): build_args=build_args, ) - if push: - push(ctx, [c]) - @task(iterable=["ctr"]) def push(ctx, ctr): diff --git a/tasks/env.py b/tasks/env.py index e9a8261..11c408b 100644 --- a/tasks/env.py +++ b/tasks/env.py @@ -1,5 +1,5 @@ from faasmtools.build import FAASM_LOCAL_DIR -from faasmtools.docker import ACR_NAME +from faasmtools.docker import CR_NAME from faasmtools.env import get_version as get_cpp_version from os import environ from os.path import dirname, abspath, join @@ -14,9 +14,9 @@ # Docker variables EXAMPLES_BUILD_IMAGE_CTR = "examples-build-workon" -EXAMPLES_BUILD_IMAGE_NAME = "{}/examples-build".format(ACR_NAME) +EXAMPLES_BUILD_IMAGE_NAME = "{}/examples-build".format(CR_NAME) EXAMPLES_BUILD_DOCKERFILE = join(DOCKER_ROOT, "build.dockerfile") -EXAMPLES_BASE_IMAGE_NAME = "{}/examples-base".format(ACR_NAME) +EXAMPLES_BASE_IMAGE_NAME = "{}/examples-base".format(CR_NAME) EXAMPLES_BASE_DOCKERFILE = join(DOCKER_ROOT, "base.dockerfile") # Shared files data diff --git a/tasks/func.py b/tasks/func.py index ee0a901..4aa375a 100644 --- a/tasks/func.py +++ b/tasks/func.py @@ -44,7 +44,6 @@ def tests(ctx, clean=False): ["ffmpeg", "check"], ["opencv", "check"], ["opencv", "pca"], - ["rabe", "test"], ["tf", "check"], # TODO: this two functions are not used in the tests, as they are used # to exercise migration, for what we need a distributed test setting