From fc9146e09fe62e474f643e9e1e0b2155e48be006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E9=9B=AA=E6=AE=87=E7=92=83=E9=99=8C=E6=A2=A6?= <80821706+DreamOfIce@users.noreply.github.com> Date: Wed, 29 May 2024 02:34:36 +0800 Subject: [PATCH] Upgrade CI to Ubuntu 20.04 LTS (Focal) (#1183) # Why On one hand Ubuntu18's free LTS cycle is ended, and on the other hand Ubuntu18 does not support nodejs greater than v18. # What's changed. 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 #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 cea7e0e..31f090e 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 python3-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 8e1c99b..9736aea 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.