From 2b983bf17bcb712c3d182c46a253b4f5ad292230 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 12 Nov 2019 09:36:54 +0000 Subject: [PATCH 1/4] Move CI build commands to separate scripts --- .github/workflows/main.yml | 94 +------------------------------------- build-linux.sh | 55 ++++++++++++++++++++++ build-mac.sh | 41 +++++++++++++++++ 3 files changed, 98 insertions(+), 92 deletions(-) create mode 100755 build-linux.sh create mode 100755 build-mac.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0950dff14adfa..3689cf95a57ea 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,59 +13,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: ./build-linux.sh macos_build: timeout-minutes: 0 @@ -74,42 +22,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: ./build-mac.sh diff --git a/build-linux.sh b/build-linux.sh new file mode 100755 index 0000000000000..9b5eff97fefaf --- /dev/null +++ b/build-linux.sh @@ -0,0 +1,55 @@ +#/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 +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" diff --git a/build-mac.sh b/build-mac.sh new file mode 100755 index 0000000000000..e83168fac4ae3 --- /dev/null +++ b/build-mac.sh @@ -0,0 +1,41 @@ +#/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 +./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" From 3e69832f19b6578c31a7409c492641ee204a1eb4 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 12 Nov 2019 10:52:28 +0000 Subject: [PATCH 2/4] Run CI on pushes to `swiftwasm` branch --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3689cf95a57ea..e631f0610c60c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,9 @@ name: CI on: + push: + branches: + - swiftwasm pull_request: branches: - swiftwasm From 2c58fc7a0289c4f4bd519009a603f62070e2ddf4 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 12 Nov 2019 11:57:13 +0000 Subject: [PATCH 3/4] Split build and setup steps into separate scrtipts --- .github/workflows/main.yml | 4 ++-- build-linux.sh | 30 +----------------------------- build-mac.sh | 16 +--------------- ci-linux.sh | 32 ++++++++++++++++++++++++++++++++ ci-mac.sh | 19 +++++++++++++++++++ 5 files changed, 55 insertions(+), 46 deletions(-) create mode 100755 ci-linux.sh create mode 100755 ci-mac.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e631f0610c60c..9ca46da5c1f08 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Run a multi-line script - run: ./build-linux.sh + run: ./ci-linux.sh macos_build: timeout-minutes: 0 @@ -25,4 +25,4 @@ jobs: steps: - uses: actions/checkout@v1 - name: Run a multi-line script - run: ./build-mac.sh + run: ./ci-mac.sh diff --git a/build-linux.sh b/build-linux.sh index 9b5eff97fefaf..e0426fa1723cd 100755 --- a/build-linux.sh +++ b/build-linux.sh @@ -1,34 +1,5 @@ #/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 utils/build-script --release --wasm --verbose \ --skip-build-benchmarks \ @@ -53,3 +24,4 @@ utils/build-script --release --wasm --verbose \ --wasm-icu-uc "$sourcedir/icu_out/lib" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" +cd .. diff --git a/build-mac.sh b/build-mac.sh index e83168fac4ae3..ee67d4a8266a5 100755 --- a/build-mac.sh +++ b/build-mac.sh @@ -1,20 +1,5 @@ #/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 ./utils/build-script --release --wasm --verbose \ --skip-build-benchmarks \ @@ -39,3 +24,4 @@ cd swift --wasm-icu-uc "$sourcedir/icu_out/lib" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" +cd .. diff --git a/ci-linux.sh b/ci-linux.sh new file mode 100755 index 0000000000000..515a10ca28508 --- /dev/null +++ b/ci-linux.sh @@ -0,0 +1,32 @@ +#/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 + +./build-linux.sh diff --git a/ci-mac.sh b/ci-mac.sh new file mode 100755 index 0000000000000..f9841b4ba7bc4 --- /dev/null +++ b/ci-mac.sh @@ -0,0 +1,19 @@ +#/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 + +./build-mac.sh From efe78b9563424bff2235118c8da24e9dfd6f7535 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 12 Nov 2019 12:05:52 +0000 Subject: [PATCH 4/4] Fix execution directories in the build scripts --- build-linux.sh | 2 -- build-mac.sh | 2 -- ci-linux.sh | 1 + ci-mac.sh | 1 + 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/build-linux.sh b/build-linux.sh index e0426fa1723cd..7d91a1abd9b57 100755 --- a/build-linux.sh +++ b/build-linux.sh @@ -1,6 +1,5 @@ #/bin/bash -cd swift utils/build-script --release --wasm --verbose \ --skip-build-benchmarks \ --extra-cmake-options=" \ @@ -24,4 +23,3 @@ utils/build-script --release --wasm --verbose \ --wasm-icu-uc "$sourcedir/icu_out/lib" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" -cd .. diff --git a/build-mac.sh b/build-mac.sh index ee67d4a8266a5..741b394981492 100755 --- a/build-mac.sh +++ b/build-mac.sh @@ -1,6 +1,5 @@ #/bin/bash -cd swift ./utils/build-script --release --wasm --verbose \ --skip-build-benchmarks \ --extra-cmake-options=" \ @@ -24,4 +23,3 @@ cd swift --wasm-icu-uc "$sourcedir/icu_out/lib" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" -cd .. diff --git a/ci-linux.sh b/ci-linux.sh index 515a10ca28508..18953fb7ce1f5 100755 --- a/ci-linux.sh +++ b/ci-linux.sh @@ -29,4 +29,5 @@ 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 diff --git a/ci-mac.sh b/ci-mac.sh index f9841b4ba7bc4..dc8bab5527073 100755 --- a/ci-mac.sh +++ b/ci-mac.sh @@ -16,4 +16,5 @@ 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