Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions .github/workflows/build-toolchain.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -21,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
Expand All @@ -39,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
Expand Down Expand Up @@ -73,7 +93,7 @@ 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
Expand Down Expand Up @@ -123,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
;;
*)
Expand Down
3 changes: 2 additions & 1 deletion utils/build-script
Original file line number Diff line number Diff line change
Expand Up @@ -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")
]

# -----------------------------------------------------------------------------
Expand Down
96 changes: 67 additions & 29 deletions utils/webassembly/linux/install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,86 @@

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
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

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
Expand All @@ -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
4 changes: 2 additions & 2 deletions utils/webassembly/macos/install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ 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)"
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