diff options
author | Ludovic Henry <luhenry@microsoft.com> | 2018-10-10 20:35:45 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-10 20:35:45 +0300 |
commit | 46b723d6b015e5b9a10b03e7c4b4c8259177589b (patch) | |
tree | 7d2995d215379cd0d953b4a39652912e258b48c0 /scripts | |
parent | ab3c897d6851ccf75e840d8b767aafa0d0a32d53 (diff) |
[2018-06] [sdks] Create archive targets for pre-building on CI (#10936)
* [sdks] Remove redundant --enable-cxx
* [sdks] Shorten `-m32`/`-m64` parameters detection for runtimes
* [sdks] Build BCL profiles without configure flags
* [sdks] Create archive targets for pre-building on CI
* [sdks] Add BclTemplate to build BCL profiles
This is to avoid building all the profiles in a single `sdks/out/bcl` directory which will be shared between android, ios and wasm.
* [sdks] Use archive-{android,ios,wasm} on CI
* [sdks] Run archive-llvm-llvm{,win}{32,64} on CI
* [sdks] Add download/pack capabilities for LLVM
* [sdks] Ensure LLVM is cloned before trying to download
* [sdks] Simplify call to BclTemplate
* Put xunit tests in mcs/class/lib/PROFILE/tests too
So they are next to their NUnit counterparts.
Move xunit remote executor app to tests dir too and compile it when
compiling the test assembly instead of doing it before running the test.
We need to use an absolute path for the xunit remote executor and it
needs to be in Windows format on Windows since we pass it as an env var
to the xunit tests.
* [sdks] Build LLVM with make in parallel
* [mcs] Make directory dependency as order-only
We would otherwise always rebuild the target since the directory is updated whenever something is added to the directory. This is a common Makefile technique.
* [sdks] Build tests for BCL targets
* [build] Switch to netstandard based xunit
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/ci/run-jenkins.sh | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/scripts/ci/run-jenkins.sh b/scripts/ci/run-jenkins.sh index f4da7c77815..049e87782a5 100755 --- a/scripts/ci/run-jenkins.sh +++ b/scripts/ci/run-jenkins.sh @@ -83,17 +83,20 @@ then wget -qO- https://download.mono-project.com/test/new-certs.tgz| tar zx -C ~/.config/.mono/ fi +if [[ ${CI_TAGS} == *'sdks-llvm'* ]]; then + ${TESTCMD} --label=archive --timeout=120m --fatal make -j ${CI_CPU_COUNT} -C sdks/builds archive-llvm36-llvm32 archive-llvm-llvm{,win}{32,64} NINJA= + exit 0 +fi + if [[ ${CI_TAGS} == *'product-sdks-ios'* ]]; then echo "DISABLE_ANDROID=1" > sdks/Make.config echo "DISABLE_WASM=1" >> sdks/Make.config + echo "DISABLE_DESKTOP=1" >> sdks/Make.config export device_test_suites="Mono.Runtime.Tests System.Core" - ${TESTCMD} --label=build-sim-runtimes --timeout=60m --fatal make -j4 -C sdks/builds package-ios-{sim64,sim32,simtv,simwatch} - ${TESTCMD} --label=build-dev-runtimes --timeout=60m --fatal make -j4 -C sdks/builds package-ios-{target64,target32,targettv,targetwatch} - ${TESTCMD} --label=build-cross-compilers --timeout=60m --fatal make -j4 -C sdks/builds package-ios-{cross64,cross32,crosswatch} + ${TESTCMD} --label=archive --timeout=180m --fatal make -j12 -C sdks/builds archive-ios NINJA= - ${TESTCMD} --label=bcl --timeout=60m --fatal make -j4 -C sdks/builds package-bcl ${TESTCMD} --label=build-tests --timeout=10m --fatal make -C sdks/ios compile-tests ${TESTCMD} --label=run-sim --timeout=20m make -C sdks/ios run-ios-sim-all ${TESTCMD} --label=build-ios-dev --timeout=60m make -C sdks/ios build-ios-dev-all @@ -112,22 +115,19 @@ if [[ ${CI_TAGS} == *'product-sdks-ios'* ]]; if [[ ${CI_TAGS} == *'run-device-tests'* ]]; then for suite in ${device_test_suites}; do ${TESTCMD} --label=run-ios-dev-interp-mixed-${suite} --timeout=10m make -C sdks/ios run-ios-dev-${suite}; done fi - ${TESTCMD} --label=package --timeout=60m tar cvzf mono-product-sdk-$GIT_COMMIT.tar.gz -C sdks/out/ bcl ios-llvm64 ios-llvm32 ios-cross32-release ios-cross64-release exit 0 fi if [[ ${CI_TAGS} == *'product-sdks-android'* ]]; then - echo "IGNORE_PROVISION_ANDROID=1" > sdks/Make.config - echo "IGNORE_PROVISION_MXE=1" >> sdks/Make.config - echo "IGNORE_PROVISION_LLVM=1" >> sdks/Make.config + echo "DISABLE_IOS=1" > sdks/Make.config + echo "DISABLE_WASM=1" >> sdks/Make.config + echo "DISABLE_DESKTOP=1" >> sdks/Make.config echo "DISABLE_CCACHE=1" >> sdks/Make.config - ${TESTCMD} --label=provision-android --timeout=120m --fatal make -j4 -C sdks/builds provision-android - if [[ ${CI_TAGS} == *'provision-mxe'* ]]; then - ${TESTCMD} --label=provision-mxe --timeout=240m --fatal make -j4 -C sdks/builds provision-mxe - fi - ${TESTCMD} --label=llvm --timeout=240m --fatal make -j4 -C sdks/builds provision-llvm-llvm{,win}{32,64} - ${TESTCMD} --label=runtimes --timeout=120m --fatal make -j4 -C sdks/builds package-android-{armeabi,armeabi-v7a,arm64-v8a,x86,x86_64} package-android-host-{Darwin,mxe-Win64} package-android-cross-{arm,arm64,x86,x86_64}{,-win} + + ${TESTCMD} --label=provision-android --timeout=120m --fatal make -j12 -C sdks/builds provision-android + ${TESTCMD} --label=provision-mxe --timeout=240m --fatal make -j12 -C sdks/builds provision-mxe + ${TESTCMD} --label=archive --timeout=180m --fatal make -j12 -C sdks/builds archive-android NINJA= IGNORE_PROVISION_ANDROID=1 IGNORE_PROVISION_MXE=1 exit 0 fi @@ -135,8 +135,10 @@ if [[ ${CI_TAGS} == *'webassembly'* ]]; then echo "DISABLE_ANDROID=1" > sdks/Make.config echo "DISABLE_IOS=1" >> sdks/Make.config - ${TESTCMD} --label=runtimes --timeout=60m --fatal make -j4 -C sdks/builds package-wasm-interp - ${TESTCMD} --label=bcl --timeout=60m --fatal make -j4 -C sdks/builds package-bcl + echo "DISABLE_DESKTOP=1" >> sdks/Make.config + + ${TESTCMD} --label=archive --timeout=180m --fatal make -j4 -C sdks/builds archive-wasm NINJA= + ${TESTCMD} --label=wasm-build --timeout=60m --fatal make -j4 -C sdks/wasm build ${TESTCMD} --label=ch-mini-test --timeout=60m make -C sdks/wasm run-ch-mini ${TESTCMD} --label=v8-mini-test --timeout=60m make -C sdks/wasm run-v8-mini |