From 07d7303184195180da3eae8189d94d1ca175f543 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Tue, 28 May 2024 10:46:36 -0700 Subject: [PATCH] [TESTING] Upgrade CI to Ubuntu20.04 LTS (Focal) On one hand Ubuntu18's free LTS cycle is ended, and on the other hand Ubuntu18 does not support nodejs greater than v18. 1. update the Linux Docker image to buildpack-deps:focal 2. some compatibility changes 3. use the new recommended way to install Docker ([see here](https://docs.docker.com/engine/install/ubuntu/)) See https://github.com/emscripten-core/emsdk/issues/1173 --- .circleci/config.yml | 40 ++++++++++++++++++++++++++-------------- README.md | 2 +- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index cea7e0e37b..f249e9d980 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,9 +4,9 @@ orbs: win: circleci/windows@5.0 executors: - bionic: + ubuntu: docker: - - image: buildpack-deps:bionic + - image: buildpack-deps:focal mac: environment: EMSDK_NOTTY: "1" @@ -50,22 +50,20 @@ commands: jobs: flake8: - executor: bionic + executor: ubuntu steps: - checkout - run: name: install pip command: | apt-get update -q - apt-get install -q -y python-pip python3-pip - - run: python2 -m pip install --upgrade pip + apt-get install -q -y python-pip - run: python3 -m pip install --upgrade pip - - run: python2 -m pip install flake8==3.9.2 - run: python3 -m pip install flake8==3.9.2 - - run: python2 -m flake8 --show-source --statistics --extend-exclude=./scripts - - run: python3 -m flake8 --show-source --statistics + - run: python3 -m flake8 --show-source --statistics --extend-exclude=./scripts + test-linux: - executor: bionic + executor: ubuntu environment: EMSDK_NOTTY: "1" # This is needed because the old gcc-7 that is installed on debian/bionic @@ -174,12 +172,19 @@ jobs: test/test_path_preservation.ps1 build-docker-image-x64: - executor: bionic + executor: ubuntu steps: - checkout - run: name: install docker - command: apt-get update -q && apt-get install -q -y docker.io + command: | + apt-get update -q + apt-get install -q -y ca-certificates curl gnupg lsb-release + mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update -q + apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - setup_remote_docker # Build the `latest` version of EMSDK as docker image - run: @@ -190,12 +195,19 @@ jobs: command: make -C ./docker version=latest test publish-docker-image-x64: - executor: bionic + executor: ubuntu steps: - checkout - run: name: install docker - command: apt-get update -q && apt-get install -q -y docker.io + command: | + apt-get update -q + apt-get install -q -y ca-certificates curl gnupg lsb-release + mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update -q + apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - setup_remote_docker - run: name: build @@ -226,7 +238,7 @@ jobs: make -C ./docker version=${CIRCLE_TAG} alias=${CIRCLE_TAG}-arm64 only_alias=true push test-bazel-linux: - executor: bionic + executor: ubuntu steps: - checkout - run: apt-get install -q -y curl gnupg diff --git a/README.md b/README.md index 8e1c99bb3d..9736aea0a2 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html. - `python`: Version 2.7.0 or above. - `java`: For running closure compiler (optional) -The emsdk pre-compiled binaries are built against Ubuntu/Xenial 16.04 LTS and +The emsdk pre-compiled binaries are built against Ubuntu/Focal 20.04 LTS and therefore depend on system libraries compatible with versions of `glibc` and `libstdc++` present in that release. If your linux distribution is very old you may not be able to use the pre-compiled binaries packages.