Skip to content

Move CI build commands to separate scripts #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Nov 12, 2019
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
97 changes: 5 additions & 92 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: CI

on:
push:
branches:
- swiftwasm
pull_request:
branches:
- swiftwasm
Expand All @@ -13,59 +16,7 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: Run a multi-line script
run: |
sudo apt update
sudo apt install \
git ninja-build clang python \
uuid-dev libicu-dev icu-devtools libbsd-dev \
libedit-dev libxml2-dev libsqlite3-dev swig \
libpython-dev libncurses5-dev pkg-config \
libblocksruntime-dev libcurl4-openssl-dev \
systemtap-sdt-dev tzdata rsync

./utils/update-checkout --clone --scheme wasm
git checkout $GITHUB_SHA
export sourcedir=$PWD/..
cd $sourcedir

wget -O install_cmake.sh "https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.sh"
chmod +x install_cmake.sh
sudo mkdir -p /opt/cmake
sudo ./install_cmake.sh --skip-license --prefix=/opt/cmake
sudo ln -sf /opt/cmake/bin/* /usr/local/bin
cmake --version

wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz
tar xfz wasi-sdk.tar.gz
mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk

wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz"
tar xf icu.tar.xz

cd swift
utils/build-script --release --wasm --verbose \
--skip-build-benchmarks \
--extra-cmake-options=" \
-DSWIFT_SDKS='WASM;LINUX' \
-DSWIFT_BUILD_SOURCEKIT=FALSE \
-DSWIFT_ENABLE_SOURCEKIT_TESTS=FALSE \
-DCMAKE_AR='$sourcedir/wasi-sdk/bin/llvm-ar' \
-DCMAKE_RANLIB='$sourcedir/wasi-sdk/bin/llvm-ranlib' \
" \
--build-stdlib-deployment-targets "wasm-wasm32" \
--build-swift-static-stdlib \
--install-destdir="$sourcedir/install" \
--install-prefix="/opt/swiftwasm-sdk" \
--install-swift \
--installable-package="$sourcedir/swiftwasm.tar.gz" \
--llvm-targets-to-build "X86;WebAssembly" \
--stdlib-deployment-targets "wasm-wasm32" \
--wasm-icu-data "todo-icu-data" \
--wasm-icu-i18n "$sourcedir/icu_out/lib" \
--wasm-icu-i18n-include "$sourcedir/icu_out/include" \
--wasm-icu-uc "$sourcedir/icu_out/lib" \
--wasm-icu-uc-include "$sourcedir/icu_out/include" \
--wasm-wasi-sdk "$sourcedir/wasi-sdk"
run: ./ci-linux.sh

macos_build:
timeout-minutes: 0
Expand All @@ -74,42 +25,4 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: Run a multi-line script
run: |
brew install cmake ninja llvm
./utils/update-checkout --clone --scheme wasm
git checkout $GITHUB_SHA
export sourcedir=$PWD/..
cd $sourcedir
wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz
tar xfz wasi-sdk.tar.gz
mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk
# Link sysroot/usr/include to sysroot/include because Darwin sysroot doesn't
# find header files in sysroot/include but sysroot/usr/include
mkdir wasi-sdk/share/sysroot/usr/
ln -s ../include wasi-sdk/share/sysroot/usr/include
wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz"
tar xf icu.tar.xz
cd swift
./utils/build-script --release --wasm --verbose \
--skip-build-benchmarks \
--extra-cmake-options=" \
-DSWIFT_PRIMARY_VARIANT_SDK:STRING=WASM \
-DSWIFT_PRIMARY_VARIANT_ARCH:STRING=wasm32 \
-DSWIFT_OSX_x86_64_ICU_STATICLIB=TRUE \
-DSWIFT_BUILD_SOURCEKIT=FALSE \
-DSWIFT_ENABLE_SOURCEKIT_TESTS=FALSE \
-DCMAKE_AR='/usr/local/opt/llvm/bin/llvm-ar' \
-DCMAKE_RANLIB='/usr/local/opt/llvm/bin/llvm-ranlib' \
" \
--build-stdlib-deployment-targets "wasm-wasm32" \
--build-swift-dynamic-sdk-overlay false \
--build-swift-static-sdk-overlay false \
--build-swift-static-stdlib \
--llvm-targets-to-build "X86;WebAssembly" \
--stdlib-deployment-targets "wasm-wasm32" \
--wasm-icu-data "todo-icu-data" \
--wasm-icu-i18n "$sourcedir/icu_out/lib" \
--wasm-icu-i18n-include "$sourcedir/icu_out/include" \
--wasm-icu-uc "$sourcedir/icu_out/lib" \
--wasm-icu-uc-include "$sourcedir/icu_out/include" \
--wasm-wasi-sdk "$sourcedir/wasi-sdk"
run: ./ci-mac.sh
25 changes: 25 additions & 0 deletions build-linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#/bin/bash

utils/build-script --release --wasm --verbose \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you separate this script into setup script and build command or skip to download dependencies if they are already downloaded?

This script try to download dependencies even if try just to build locally.

--skip-build-benchmarks \
--extra-cmake-options=" \
-DSWIFT_SDKS='WASM;LINUX' \
-DSWIFT_BUILD_SOURCEKIT=FALSE \
-DSWIFT_ENABLE_SOURCEKIT_TESTS=FALSE \
-DCMAKE_AR='$sourcedir/wasi-sdk/bin/llvm-ar' \
-DCMAKE_RANLIB='$sourcedir/wasi-sdk/bin/llvm-ranlib' \
" \
--build-stdlib-deployment-targets "wasm-wasm32" \
--build-swift-static-stdlib \
--install-destdir="$sourcedir/install" \
--install-prefix="/opt/swiftwasm-sdk" \
--install-swift \
--installable-package="$sourcedir/swiftwasm.tar.gz" \
--llvm-targets-to-build "X86;WebAssembly" \
--stdlib-deployment-targets "wasm-wasm32" \
--wasm-icu-data "todo-icu-data" \
--wasm-icu-i18n "$sourcedir/icu_out/lib" \
--wasm-icu-i18n-include "$sourcedir/icu_out/include" \
--wasm-icu-uc "$sourcedir/icu_out/lib" \
--wasm-icu-uc-include "$sourcedir/icu_out/include" \
--wasm-wasi-sdk "$sourcedir/wasi-sdk"
25 changes: 25 additions & 0 deletions build-mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#/bin/bash

./utils/build-script --release --wasm --verbose \
--skip-build-benchmarks \
--extra-cmake-options=" \
-DSWIFT_PRIMARY_VARIANT_SDK:STRING=WASM \
-DSWIFT_PRIMARY_VARIANT_ARCH:STRING=wasm32 \
-DSWIFT_OSX_x86_64_ICU_STATICLIB=TRUE \
-DSWIFT_BUILD_SOURCEKIT=FALSE \
-DSWIFT_ENABLE_SOURCEKIT_TESTS=FALSE \
-DCMAKE_AR='/usr/local/opt/llvm/bin/llvm-ar' \
-DCMAKE_RANLIB='/usr/local/opt/llvm/bin/llvm-ranlib' \
" \
--build-stdlib-deployment-targets "wasm-wasm32" \
--build-swift-dynamic-sdk-overlay false \
--build-swift-static-sdk-overlay false \
--build-swift-static-stdlib \
--llvm-targets-to-build "X86;WebAssembly" \
--stdlib-deployment-targets "wasm-wasm32" \
--wasm-icu-data "todo-icu-data" \
--wasm-icu-i18n "$sourcedir/icu_out/lib" \
--wasm-icu-i18n-include "$sourcedir/icu_out/include" \
--wasm-icu-uc "$sourcedir/icu_out/lib" \
--wasm-icu-uc-include "$sourcedir/icu_out/include" \
--wasm-wasi-sdk "$sourcedir/wasi-sdk"
33 changes: 33 additions & 0 deletions ci-linux.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#/bin/bash

sudo apt update
sudo apt install \
git ninja-build clang python \
uuid-dev libicu-dev icu-devtools libbsd-dev \
libedit-dev libxml2-dev libsqlite3-dev swig \
libpython-dev libncurses5-dev pkg-config \
libblocksruntime-dev libcurl4-openssl-dev \
systemtap-sdt-dev tzdata rsync

export current_sha=`git rev-parse HEAD`
./utils/update-checkout --clone --scheme wasm
git checkout $current_sha
export sourcedir=$PWD/..
cd $sourcedir

wget -O install_cmake.sh "https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.sh"
chmod +x install_cmake.sh
sudo mkdir -p /opt/cmake
sudo ./install_cmake.sh --skip-license --prefix=/opt/cmake
sudo ln -sf /opt/cmake/bin/* /usr/local/bin
cmake --version

wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz
tar xfz wasi-sdk.tar.gz
mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk

wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz"
tar xf icu.tar.xz

cd swift
./build-linux.sh
20 changes: 20 additions & 0 deletions ci-mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#/bin/bash

brew install cmake ninja llvm
export current_sha=`git rev-parse HEAD`
./utils/update-checkout --clone --scheme wasm
git checkout $current_sha
export sourcedir=$PWD/..
cd $sourcedir
wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz
tar xfz wasi-sdk.tar.gz
mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk
# Link sysroot/usr/include to sysroot/include because Darwin sysroot doesn't
# find header files in sysroot/include but sysroot/usr/include
mkdir wasi-sdk/share/sysroot/usr/
ln -s ../include wasi-sdk/share/sysroot/usr/include
wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz"
tar xf icu.tar.xz

cd swift
./build-mac.sh