From 6045a4b6cf86147e165832ec722e65b31c6f2173 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Mon, 13 Dec 2021 21:39:02 +0100 Subject: [PATCH 1/7] Enable CI for `swiftwasm-release/5.6` branch --- .github/workflows/build-toolchain.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index 08fdd6514a197..8f0a003934184 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -7,12 +7,14 @@ on: - swiftwasm-release/5.3 - swiftwasm-release/5.4 - swiftwasm-release/5.5 + - swiftwasm-release/5.6 pull_request: branches: - swiftwasm - swiftwasm-release/5.3 - swiftwasm-release/5.4 - swiftwasm-release/5.5 + - swiftwasm-release/5.6 jobs: build_toolchain: env: From b3f386bb63605aaa372c0dfb6dd5bd70428d5b8f Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Mon, 10 Jan 2022 08:10:25 +0000 Subject: [PATCH 2/7] Mark Xcode 13.2.1 as supported (#40778) Currently, when trying to build with the latest stable Xcode, you get this error: ``` using unsupported Xcode version: Xcode 13.2.1 Build version 13C100 ``` Xcode 13.2.1 can successfully build the toolchain and should be marked as supported. --- utils/build-script | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/build-script b/utils/build-script index c1a8a7abdf990..6c2e075b616d9 100755 --- a/utils/build-script +++ b/utils/build-script @@ -59,7 +59,8 @@ _SUPPORTED_XCODE_BUILDS = [ ("13.0 beta 4", "13A5201i"), ("13.0", "13A233"), ("13.1 RC 1", "13A1030d"), - ("13.2 beta", "13C5066c") + ("13.2 beta", "13C5066c"), + ("13.2.1", "13C100") ] # ----------------------------------------------------------------------------- From d417b04c571507bbeeadaf6b44be521c2d5a54d1 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 15 Mar 2022 09:50:03 +0000 Subject: [PATCH 3/7] Set 5.6 branch scheme in `install-dependencies.sh` --- utils/webassembly/linux/install-dependencies.sh | 2 +- utils/webassembly/macos/install-dependencies.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/webassembly/linux/install-dependencies.sh b/utils/webassembly/linux/install-dependencies.sh index 33aaf48d51101..54c5b07147cc5 100755 --- a/utils/webassembly/linux/install-dependencies.sh +++ b/utils/webassembly/linux/install-dependencies.sh @@ -32,7 +32,7 @@ SOURCE_PATH="$( cd "$(dirname $0)/../../../.." && pwd )" SWIFT_PATH=$SOURCE_PATH/swift cd $SWIFT_PATH -./utils/update-checkout --clone --scheme wasm --skip-repository swift +./utils/update-checkout --clone --scheme wasm/5.6 --skip-repository swift # Install wasmer diff --git a/utils/webassembly/macos/install-dependencies.sh b/utils/webassembly/macos/install-dependencies.sh index 8b4905c948ade..a38f6ea268eb3 100755 --- a/utils/webassembly/macos/install-dependencies.sh +++ b/utils/webassembly/macos/install-dependencies.sh @@ -18,7 +18,7 @@ SOURCE_PATH="$(cd "$(dirname $0)/../../../../" && pwd)" SWIFT_PATH=$SOURCE_PATH/swift cd $SWIFT_PATH -./utils/update-checkout --clone --scheme wasm --skip-repository swift +./utils/update-checkout --clone --scheme wasm/5.6 --skip-repository swift cd $SOURCE_PATH From 0c7676bfef3f3412b20029565ea89bcfae94d7a0 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 15 Mar 2022 14:25:26 +0000 Subject: [PATCH 4/7] Add support for new OS targets to CI config --- .github/workflows/build-toolchain.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index 8f0a003934184..4d11ed0feffe9 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -23,6 +23,15 @@ jobs: strategy: matrix: include: + - build_os: amazon-linux-2 + agent_query: [AmazonLinux2, X64] + target: amazonlinux2_x86_64 + run_stdlib_test: false + run_full_test: false + run_e2e_test: false + build_hello_wasm: true + clean_build_dir: true + - build_os: ubuntu-18.04 agent_query: ubuntu-18.04 target: ubuntu18.04_x86_64 @@ -41,6 +50,15 @@ jobs: build_hello_wasm: true clean_build_dir: false + - build_os: ubuntu-20.04 + agent_query: [ubuntu20.04, ARM64] + target: ubuntu20.04_aarch64 + run_stdlib_test: false + run_full_test: false + run_e2e_test: false + build_hello_wasm: true + clean_build_dir: true + - build_os: macos-11 agent_query: macos-11 target: macos_x86_64 @@ -125,7 +143,7 @@ jobs: run: | case "${{ matrix.target }}" in - "ubuntu20.04_x86_64" | "ubuntu18.04_x86_64" | "macos_x86_64" | "macos_arm64") + "amazonlinux2_x86_64" | "ubuntu20.04_x86_64" | "ubuntu18.04_x86_64" | "ubuntu20.04_aarch64" | "macos_x86_64" | "macos_arm64") ./swift/utils/webassembly/ci.sh ;; *) From b1eafe4d4a88bd3b51bb6073d5982e4f889fab75 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 15 Mar 2022 14:29:21 +0000 Subject: [PATCH 5/7] Add OS conditions to "Free disk space" step --- .github/workflows/build-toolchain.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index 4d11ed0feffe9..d9a3127316411 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -93,10 +93,10 @@ jobs: rm -rf /usr/share/swift/ - name: Free disk space - if: ${{ matrix.build_os == 'ubuntu-20.04' || matrix.build_os == 'ubuntu-18.04' }} + if: ${{ (matrix.build_os == 'ubuntu-20.04' || matrix.build_os == 'ubuntu-18.04') && matrix.agent_query == null }} run: | df -h - sudo apt-get purge libgcc-9-dev gcc-9 libstdc++-9-dev libgcc-10-dev gcc-10 libstdc++-10-dev clang-6.0 llvm-6.0 + sudo apt-get purge -y libgcc-9-dev gcc-9 libstdc++-9-dev libgcc-10-dev gcc-10 libstdc++-10-dev clang-6.0 llvm-6.0 sudo swapoff -a sudo rm -f /swapfile sudo rm -rf /opt/hostedtoolcache From 81f6d22930691dd50260b600f96897fd33da3ba5 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 15 Mar 2022 14:44:24 +0000 Subject: [PATCH 6/7] Clean up "Free disk space" step --- .github/workflows/build-toolchain.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml index d9a3127316411..730e365814209 100644 --- a/.github/workflows/build-toolchain.yml +++ b/.github/workflows/build-toolchain.yml @@ -96,7 +96,7 @@ jobs: if: ${{ (matrix.build_os == 'ubuntu-20.04' || matrix.build_os == 'ubuntu-18.04') && matrix.agent_query == null }} run: | df -h - sudo apt-get purge -y libgcc-9-dev gcc-9 libstdc++-9-dev libgcc-10-dev gcc-10 libstdc++-10-dev clang-6.0 llvm-6.0 + sudo apt-get purge libgcc-9-dev gcc-9 libstdc++-9-dev libgcc-10-dev gcc-10 libstdc++-10-dev clang-6.0 llvm-6.0 sudo swapoff -a sudo rm -f /swapfile sudo rm -rf /opt/hostedtoolcache From c49024842d8c57f19f6c303f4f63d9ac0cb85cf6 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 15 Mar 2022 14:46:40 +0000 Subject: [PATCH 7/7] Fix dependency installation scripts --- .../webassembly/linux/install-dependencies.sh | 94 +++++++++++++------ .../webassembly/macos/install-dependencies.sh | 2 +- 2 files changed, 67 insertions(+), 29 deletions(-) diff --git a/utils/webassembly/linux/install-dependencies.sh b/utils/webassembly/linux/install-dependencies.sh index 54c5b07147cc5..8baf4e0b0d03a 100755 --- a/utils/webassembly/linux/install-dependencies.sh +++ b/utils/webassembly/linux/install-dependencies.sh @@ -2,31 +2,67 @@ set -ex -sudo apt update - -if [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=18.04" ]; then - sudo apt install -y \ - git ninja-build clang-10 python python-six \ - uuid-dev libicu-dev icu-devtools libbsd-dev \ - libedit-dev libxml2-dev libsqlite3-dev swig \ - libpython-dev libncurses5 libncurses5-dev pkg-config \ - libblocksruntime-dev libcurl4-openssl-dev \ - make systemtap-sdt-dev tzdata rsync wget llvm-10 zip unzip - sudo ln -s -f /usr/bin/clang-10 /usr/bin/clang - sudo ln -s -f /usr/bin/clang++-10 /usr/bin/clang++ -elif [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=20.04" ]; then - sudo apt install -y \ - git ninja-build clang python python-six \ - uuid-dev libicu-dev icu-devtools libbsd-dev \ - libedit-dev libxml2-dev libsqlite3-dev swig \ - libpython2-dev libncurses5 libncurses5-dev pkg-config \ - libblocksruntime-dev libcurl4-openssl-dev \ - make systemtap-sdt-dev tzdata rsync wget llvm zip unzip +if [[ "$(cat /etc/system-release)" == *"Amazon Linux release 2"* ]]; then + sudo yum -y install \ + clang \ + curl-devel \ + gcc-c++ \ + git \ + glibc-static \ + libbsd-devel \ + libedit-devel \ + libicu-devel \ + libuuid-devel \ + libxml2-devel \ + ncurses-compat-libs \ + ncurses-devel \ + ninja-build \ + pexpect \ + pkgconfig \ + procps-ng \ + python \ + python-devel \ + python-pkgconfig \ + python-six \ + python3-devel \ + rsync \ + sqlite-devel \ + swig \ + tzdata \ + uuid-devel \ + wget \ + which + + if [ ! -e /usr/local/bin/ninja ]; then + sudo ln -s /usr/bin/ninja-build /usr/local/bin/ninja + fi else - echo "Unknown Ubuntu version" - exit 1 + sudo apt update + + if [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=18.04" ]; then + sudo apt install -y \ + git ninja-build clang-10 python python-six \ + uuid-dev libicu-dev icu-devtools libbsd-dev \ + libedit-dev libxml2-dev libsqlite3-dev swig \ + libpython-dev libncurses5 libncurses5-dev pkg-config \ + libblocksruntime-dev libcurl4-openssl-dev \ + make systemtap-sdt-dev tzdata rsync wget llvm-10 zip unzip + sudo ln -s -f /usr/bin/clang-10 /usr/bin/clang + sudo ln -s -f /usr/bin/clang++-10 /usr/bin/clang++ + elif [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=20.04" ]; then + sudo apt install -y \ + git ninja-build clang python python-six \ + uuid-dev libicu-dev icu-devtools libbsd-dev \ + libedit-dev libxml2-dev libsqlite3-dev swig \ + libpython2-dev libncurses5 libncurses5-dev pkg-config \ + libblocksruntime-dev libcurl4-openssl-dev \ + make systemtap-sdt-dev tzdata rsync wget llvm zip unzip + else + echo "Unknown Ubuntu version" + exit 1 + fi + sudo apt clean fi -sudo apt clean SOURCE_PATH="$( cd "$(dirname $0)/../../../.." && pwd )" SWIFT_PATH=$SOURCE_PATH/swift @@ -35,15 +71,17 @@ cd $SWIFT_PATH ./utils/update-checkout --clone --scheme wasm/5.6 --skip-repository swift # Install wasmer - -if [ ! -e ~/.wasmer/bin/wasmer ]; then - curl https://get.wasmer.io -sSfL | sh +# FIXME: Wasmer doesn't support linux-aarch64, consider using a different WASI-compatible runtime. +if [ "$(uname -m)" != "aarch64" ]; then + if [ ! -e ~/.wasmer/bin/wasmer ]; then + curl https://get.wasmer.io -sSfL | sh -s "2.1.1" + fi fi cd $SOURCE_PATH if [ -z $(which cmake) ]; then - wget -O install_cmake.sh "https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-Linux-x86_64.sh" + wget -O install_cmake.sh "https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-linux-$(uname -m).sh" chmod +x install_cmake.sh sudo mkdir -p /opt/cmake sudo ./install_cmake.sh --skip-license --prefix=/opt/cmake @@ -56,7 +94,7 @@ cmake --version if [ -z $(which sccache) ]; then sudo mkdir /opt/sccache && cd /opt/sccache - wget -O - "https://github.com/mozilla/sccache/releases/download/0.2.13/sccache-0.2.13-x86_64-unknown-linux-musl.tar.gz" | \ + wget -O - "https://github.com/mozilla/sccache/releases/download/0.2.14/sccache-0.2.14-$(uname -m)-unknown-linux-musl.tar.gz" | \ sudo tar xz --strip-components 1 sudo ln -sf /opt/sccache/sccache /usr/local/bin fi diff --git a/utils/webassembly/macos/install-dependencies.sh b/utils/webassembly/macos/install-dependencies.sh index a38f6ea268eb3..9229134ba621a 100755 --- a/utils/webassembly/macos/install-dependencies.sh +++ b/utils/webassembly/macos/install-dependencies.sh @@ -11,7 +11,7 @@ brew install cmake ninja llvm sccache # Install latest wasmer if [ ! -e ~/.wasmer/bin/wasmer ]; then - curl https://get.wasmer.io -sSfL | sh + curl https://get.wasmer.io -sSfL | sh -s "2.1.1" fi SOURCE_PATH="$(cd "$(dirname $0)/../../../../" && pwd)"