From 61a6b65af731b40e328c5567598fe31b43caa9cb Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 3 Oct 2020 10:39:20 +0900 Subject: [PATCH] Install .swift-version toolchain on CI --- .github/workflows/perf.yml | 1 + .github/workflows/test.yml | 1 + Makefile | 1 + scripts/install-toolchain.sh | 41 ++++++++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100755 scripts/install-toolchain.sh diff --git a/.github/workflows/perf.yml b/.github/workflows/perf.yml index a31d7f19..f8c89201 100644 --- a/.github/workflows/perf.yml +++ b/.github/workflows/perf.yml @@ -16,6 +16,7 @@ jobs: export SWIFTENV_ROOT="$HOME/.swiftenv" export PATH="$SWIFTENV_ROOT/bin:$PATH" eval "$(swiftenv init -)" + ./scripts/install-toolchain.sh swiftenv install $TOOLCHAIN_DOWNLOAD make perf-tester node ci/perf-tester diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7835cded..229c76b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,7 @@ jobs: export SWIFTENV_ROOT="$HOME/.swiftenv" export PATH="$SWIFTENV_ROOT/bin:$PATH" eval "$(swiftenv init -)" + ./scripts/install-toolchain.sh swiftenv install $TOOLCHAIN_DOWNLOAD make bootstrap make test diff --git a/Makefile b/Makefile index 7f4fe586..45dcc788 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ MAKEFILE_DIR := $(dir $(lastword $(MAKEFILE_LIST))) .PHONY: bootstrap bootstrap: + ./scripts/install-toolchain.sh npm install .PHONY: build diff --git a/scripts/install-toolchain.sh b/scripts/install-toolchain.sh new file mode 100755 index 00000000..b6a82df2 --- /dev/null +++ b/scripts/install-toolchain.sh @@ -0,0 +1,41 @@ +#!/bin/bash +set -eu + +scripts_dir="$(cd "$(dirname $0)" && pwd)" + +swift_version="$(cat $scripts_dir/../.swift-version)" +swift_tag="swift-$swift_version" + +if [ -z "$(which swiftenv)" ]; then + echo "swiftenv not installed, please install it before this script." + exit 1 +fi + +if [ ! -z "$(swiftenv versions | grep $swift_version)" ]; then + echo "$swift_version is already installed." + exit 0 +fi + +case $(uname -s) in + Darwin) + toolchain_download="$swift_tag-osx.tar.gz" + ;; + Linux) + if [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=18.04" ]; then + toolchain_download="$swift_tag-ubuntu18.04.tar.gz" + elif [ $(grep RELEASE /etc/lsb-release) == "DISTRIB_RELEASE=20.04" ]; then + toolchain_download="$swift_tag-ubuntu20.04.tar.gz" + else + echo "Unknown Ubuntu version" + exit 1 + fi + ;; + *) + echo "Unrecognised platform $(uname -s)" + exit 1 + ;; +esac + +toolchain_download_url="https://github.com/swiftwasm/swift/releases/download/$swift_tag/$toolchain_download" + +swiftenv install "$toolchain_download_url"