Browse Source

package/ci: update to a newer Emscripten image that isn't 404ing.

Consistently with what's done in Corrade.
pull/680/head
Vladimír Vondruš 10 months ago
parent
commit
440653dbb8
  1. 50
      package/ci/circleci.yml
  2. 6
      package/ci/emscripten.sh

50
package/ci/circleci.yml

@ -26,26 +26,24 @@ executors:
macos:
xcode: 13.4.1
resource_class: macos.m1.medium.gen1
emscripten1:
emscripten:
docker:
# 1.39.0 is the oldest on Docker. Anything before 1.39.2 is useless as emar
# randomly asserts: https://github.com/emscripten-core/emscripten/pull/9742
# Then, anything before 1.39.6 is useless as well because emar has a
# filesystem race and randomly complains that a file doesn't exist:
# https://github.com/mosra/magnum/issues/413,
# https://github.com/emscripten-core/emscripten/pull/10161
- image: emscripten/emsdk:1.39.6-upstream
# See Corrade's package/ci/circleci.yml
# for more information.
- image: emscripten/emsdk:2.0.16
emscripten2:
docker:
# Used by the webgl2 job. 2.0.17 is the first version that exposes
# glGetBufferSubData() so GLES3 tests can read buffer data without having
# to check the Emscripten version. 2.0.17 dies midway compiling however, so
# using some newer version. 2.0.18 to 2.0.24 then fails due to an
# unresolved malloc dependency of glGetString() (!!!), in 2.0.25 it
# mysteriously disappears. See https://github.com/mosra/magnum/issues/507.
# 2.0.27 is then the first that adds timestamps to events, which are needed
# internally by touch events.
- image: emscripten/emsdk:2.0.27
# 2.0.16 is the oldest on Docker that isn't based on Debian Buster which
# started 404ing as of 2025-07-13. However, as usual, it doesn't work, so
# bumping to 2.0.26 that was known to work previously. See Corrade's
# package/ci/circleci.yml for more information.
- image: emscripten/emsdk:2.0.26
emscripten3:
docker:
# Used by the webgl2 job. 2.0.27 is the first that adds timestamps to
# events, which are needed internally by touch events, but making sure the
# version 3 is tested also.
- image: emscripten/emsdk:3.0.0
android-29:
machine:
image: android:2021.10.1
@ -717,32 +715,36 @@ jobs:
- lcov
emscripten-webgl1:
executor: emscripten1
executor: emscripten2
# Deliberately *not* setting NODEJS_EXECUTABLE here to verify that the
# build correctly skips WASM SIMD tests for Node.js 14. WASM SIMD is then
# tested in the job below.
environment:
# STUPID yml interprets unquoted ON as a boolean
TARGET_GLES2: "ON"
steps:
- install-base-linux
# With a Debug build, 16+ is causing OOMs. Release was fine with 24.
# With a Debug build, 8+ is causing OOMs. Release was fine with 24.
- cap-ninja-jobs:
count: 8
count: 4
- build:
script: emscripten.sh
emscripten-webgl2:
executor: emscripten2
executor: emscripten3
environment:
# STUPID yml interprets unquoted OFF as a boolean
TARGET_GLES2: "OFF"
# emsdk forces the PATH to prefer its own nodejs, so explicitly force
# /usr/bin/node to be used by CMake
# Use Node.js 15 to be able to verify WASM SIMD codepaths. emsdk forces
# the PATH to prefer its own nodejs, so explicitly force /usr/bin/node to
# be used by CMake.
EXTRA_OPTS: >
-DNODEJS_EXECUTABLE=/usr/bin/node
steps:
- install-base-linux:
extra: curl
- install-nodejs
# With a Debug build, 8+ is causing OOMs. Release was fine with 24.
# With a Debug build, 8+ is causing OOMs. Release was fine with 24.
- cap-ninja-jobs:
count: 4
- build:

6
package/ci/emscripten.sh

@ -9,6 +9,9 @@ cd corrade
mkdir build-emscripten && cd build-emscripten
cmake .. \
-DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten-wasm.cmake" \
`# Building as Debug always, as Release optimizations take a long time` \
`# and make no sense on the CI. Thus, benchmark output will not be` \
`# really meaningful, but we still want to run them to catch issues.` \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCORRADE_WITH_INTERCONNECT=OFF \
@ -23,6 +26,9 @@ cd ..
mkdir build-emscripten && cd build-emscripten
cmake .. \
-DCMAKE_TOOLCHAIN_FILE="../toolchains/generic/Emscripten-wasm.cmake" \
`# Building as Debug always, as Release optimizations take a long time` \
`# and make no sense on the CI. Thus, benchmark output will not be` \
`# really meaningful, but we still want to run them to catch issues.` \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$HOME/deps \
-DCMAKE_FIND_ROOT_PATH=$HOME/deps \

Loading…
Cancel
Save