From 1124be8025995b64804e9f02b62a0354b25dfb2b Mon Sep 17 00:00:00 2001 From: Scott Todd Date: Tue, 3 Sep 2024 15:05:44 -0700 Subject: [PATCH] Use setup-emsdk instead of emscripten dockerfile in samples.yml. (#18422) Also delete the now unused `emscripten.Dockerfile` (it's technically still referenced in a commented out `cross_compile_and_test` build, but that can be added back as needed using this same technique). Progress on https://github.com/iree-org/iree/issues/15332 - one less Dockerfile to maintain. Tested here: https://github.com/ScottTodd/iree/actions/runs/10691087132/job/29636852886 (this samples.yml workflow runs on a nightly schedule). skip-ci: no impact on other workflows --- .github/workflows/samples.yml | 11 ++++- .../docker/dockerfiles/emscripten.Dockerfile | 46 ------------------- build_tools/docker/manage_images.py | 1 - build_tools/docker/prod_digests.txt | 1 - 4 files changed, 10 insertions(+), 49 deletions(-) delete mode 100644 build_tools/docker/dockerfiles/emscripten.Dockerfile diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index 0937dfb62639..2a92561b5f46 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -61,7 +61,6 @@ jobs: web: runs-on: ubuntu-20.04 - container: gcr.io/iree-oss/emscripten@sha256:2dd4c52f1bb499ab365aad0111fe5538b685d88af38636b409b0cf6a576ab214 env: VENV_DIR: ${{ github.workspace }}/.venv defaults: @@ -74,6 +73,12 @@ jobs: run: git config --global --add safe.directory '*' - name: "Check out runtime submodules" run: ./build_tools/scripts/git/update_runtime_submodules.sh + - name: "Installing build dependencies" + run: | + sudo apt update + sudo apt install -y ninja-build + echo "CC=clang" >> $GITHUB_ENV + echo "CXX=clang++" >> $GITHUB_ENV - uses: actions/setup-python@v5.1.0 with: python-version: "3.11" @@ -86,6 +91,10 @@ jobs: --upgrade \ iree-compiler \ iree-runtime + - name: "Setup emsdk" + uses: mymindstorm/setup-emsdk@v14 + with: + version: 3.1.44 - name: "Test experimental web samples" env: HOST_TOOLS_BINARY_DIR: ${{ env.VENV_DIR }}/bin diff --git a/build_tools/docker/dockerfiles/emscripten.Dockerfile b/build_tools/docker/dockerfiles/emscripten.Dockerfile deleted file mode 100644 index df17a74b6ad7..000000000000 --- a/build_tools/docker/dockerfiles/emscripten.Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 2021 The IREE Authors -# -# Licensed under the Apache License v2.0 with LLVM Exceptions. -# See https://llvm.org/LICENSE.txt for license information. -# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - -# An image for building IREE through Emscripten. - -FROM gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 - -# See also -# * https://github.com/emscripten-core/emsdk/blob/main/docker/Dockerfile -# * https://hub.docker.com/r/emscripten/emsdk - -ARG EMSDK_COMMIT=a896e3d066448b3530dbcaa48869fafefd738f57 -ARG SDK_VERSION=3.1.44 - -WORKDIR / - -# Follow https://emscripten.org/docs/getting_started/downloads.html. -RUN git clone https://github.com/emscripten-core/emsdk \ - && cd emsdk && git checkout "${EMSDK_COMMIT}" && \ - ./emsdk install ${SDK_VERSION} && \ - ./emsdk activate ${SDK_VERSION} - -# Set some environment variables for Emscripten to use. -ENV EMSDK=/emsdk -ENV EM_DATA=${EMSDK}/.data -ENV EM_CONFIG=${EMSDK}/.emscripten -ENV EM_CACHE=${EM_DATA}/cache -ENV EM_PORTS=${EM_DATA}/ports -# Emscripten writes into its cache location (outside of the CMake build -# directory). -# We can either -# (A) Grant broad write permissions to the cache directory to be able to run -# our scripts under different users. -# (B) Mount a user home directory when using the image. -# Since (A) requires less configuration, we'll do that. If multiple tools would -# want a user directory (like Bazel), we should switch to (B). -# See https://github.com/emscripten-core/emsdk/issues/535 -RUN mkdir -p "${EM_CACHE}" && chmod -R 777 "${EM_CACHE}" - -# Normally we'd run `source emsdk_env.sh`, but that doesn't integrate with -# Docker's environment properties model. Instead, we directly extend the path -# to include the directories suggested by `emsdk activate`. -ENV PATH="${EMSDK}:${EMSDK}/upstream/emscripten:$PATH" diff --git a/build_tools/docker/manage_images.py b/build_tools/docker/manage_images.py index 14b35084e9f4..e7bb1c4c3bbd 100755 --- a/build_tools/docker/manage_images.py +++ b/build_tools/docker/manage_images.py @@ -45,7 +45,6 @@ IMAGES_TO_DEPENDENCIES = { "base": [], "base-arm64": [], - "emscripten": ["base"], "riscv-toolchain-builder": [], # Containers with all the newest versions of dependencies that we support # instead of the oldest. diff --git a/build_tools/docker/prod_digests.txt b/build_tools/docker/prod_digests.txt index 7fb190a784a3..59ad32cf30d2 100644 --- a/build_tools/docker/prod_digests.txt +++ b/build_tools/docker/prod_digests.txt @@ -1,5 +1,4 @@ gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 -gcr.io/iree-oss/emscripten@sha256:2dd4c52f1bb499ab365aad0111fe5538b685d88af38636b409b0cf6a576ab214 gcr.io/iree-oss/base-bleeding-edge@sha256:cf2e78194e64fd0166f4141317366261d7a62432b72e9a324cb8c2ff4e1a515a gcr.io/iree-oss/base-arm64@sha256:9daa1cdbbf12da8527319ece76a64d06219e04ecb99a4cff6e6364235ddf6c59 gcr.io/iree-oss/riscv-toolchain-builder@sha256:4240a374d35e5ea9037051559aaae4a8b6414ad5872501d4e240baccaacfff11