|
| 1 | +language: cpp |
| 2 | + |
| 3 | +git: |
| 4 | + depth: 50 |
| 5 | + |
| 6 | +os: linux |
| 7 | +arch: arm64-graviton2 |
| 8 | +group: edge |
| 9 | +virt: lxd |
| 10 | +dist: bionic |
| 11 | +addons: |
| 12 | + apt: |
| 13 | + packages: |
| 14 | + - git-core |
| 15 | + - ninja-build |
| 16 | + - binutils-dev |
| 17 | + - python |
| 18 | + - p7zip-full |
| 19 | + - curl |
| 20 | + |
| 21 | +jobs: |
| 22 | + include: |
| 23 | + - env: LLVM_ENABLE_ASSERTIONS=ON |
| 24 | + - env: LLVM_ENABLE_ASSERTIONS=OFF |
| 25 | + |
| 26 | +script: |
| 27 | + # Install a more recent version of CMake |
| 28 | + - curl -L -o cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1-linux-aarch64.tar.gz |
| 29 | + - mkdir cmake_bin |
| 30 | + - tar -xf cmake.tar.gz --strip 1 -C cmake_bin |
| 31 | + - export PATH="$PWD/cmake_bin/bin:$PATH" |
| 32 | + # Download & extract clang |
| 33 | + - curl -L -o clang.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-11.1.0/clang+llvm-11.1.0-aarch64-linux-gnu.tar.xz |
| 34 | + - mkdir clang_bin |
| 35 | + - tar -xf clang.tar.xz --strip 1 -C clang_bin |
| 36 | + - rm clang.tar.xz |
| 37 | + - export CC="$PWD/clang_bin/bin/clang" |
| 38 | + - export CXX="$PWD/clang_bin/bin/clang++" |
| 39 | + # Build & install LLVM incl. LLD, compiler-rt and the Khronos SPIRV-LLVM-Translator |
| 40 | + - nproc |
| 41 | + - free |
| 42 | + - cmake --version |
| 43 | + - ninja --version |
| 44 | + - mkdir build |
| 45 | + - cd build |
| 46 | + - | |
| 47 | + cmake -G Ninja ../llvm \ |
| 48 | + -DCMAKE_BUILD_TYPE=Release \ |
| 49 | + -DCMAKE_INSTALL_PREFIX=$PWD/../install \ |
| 50 | + -DLLVM_ENABLE_PROJECTS='compiler-rt;lld' \ |
| 51 | + -DLLVM_TARGETS_TO_BUILD='AArch64;AMDGPU;ARM;AVR;Mips;MSP430;NVPTX;PowerPC;RISCV;WebAssembly;X86' \ |
| 52 | + -DLLVM_ENABLE_ASSERTIONS=$LLVM_ENABLE_ASSERTIONS \ |
| 53 | + -DLLVM_ENABLE_UNWIND_TABLES=OFF \ |
| 54 | + -DLLVM_ENABLE_TERMINFO=OFF \ |
| 55 | + -DLLVM_ENABLE_LIBEDIT=OFF \ |
| 56 | + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ |
| 57 | + -DLLVM_INCLUDE_TESTS=OFF \ |
| 58 | + -DCOMPILER_RT_USE_LIBCXX=OFF \ |
| 59 | + -DLLVM_BINUTILS_INCDIR=/usr/include \ |
| 60 | + -DLLVM_STATIC_LINK_CXX_STDLIB=ON |
| 61 | + - | |
| 62 | + # work around out-of-memory kills |
| 63 | + for N in 8 6 4; do |
| 64 | + ninja -j$N -k0 && break |
| 65 | + done |
| 66 | + - ninja -j4 install |
| 67 | + - cd .. |
| 68 | + # Pack installation dir |
| 69 | + - | |
| 70 | + set -eo pipefail |
| 71 | + if [ "$TRAVIS_TAG" != "" ]; then |
| 72 | + artifactID=${TRAVIS_TAG:5} |
| 73 | + else |
| 74 | + artifactID=${TRAVIS_COMMIT:0:8} |
| 75 | + fi |
| 76 | + assertsSuffix="" |
| 77 | + if [ "$LLVM_ENABLE_ASSERTIONS" = "ON" ]; then |
| 78 | + assertsSuffix="-withAsserts" |
| 79 | + fi |
| 80 | + artifactName=llvm-$artifactID-linux-aarch64$assertsSuffix |
| 81 | + mv install $artifactName |
| 82 | + artifact=$artifactName.tar.xz |
| 83 | + echo "Packing $artifact..." |
| 84 | + tar -cf - $artifactName | 7za a $artifact -si -txz -mx9 |
| 85 | + ls -lh $artifact |
| 86 | +
|
| 87 | +# Travis deploys to the GitHub release matching git tag $TRAVIS_TAG |
| 88 | +after_success: |
| 89 | + - | |
| 90 | + if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then |
| 91 | + echo 'Skipping deployment' |
| 92 | + elif [ "$TRAVIS_TAG" = "" ]; then |
| 93 | + echo 'Deploying to CI release' |
| 94 | + export TRAVIS_TAG=CI |
| 95 | + fi |
| 96 | +
|
| 97 | +deploy: |
| 98 | + provider: releases |
| 99 | + api_key: |
| 100 | + secure: "vJnenvhXJd8hSiUrwIMTux37WCrEg8ntPJlmks3oSeFSJuD5/jE6ietbBi31GWJ2CNL8SgrVNCYr8zd5dCEiwH3EJHgJwQYf5P0mm6oJ0QcdKMRMBws1xuiHv4Q1o/IOfWt6fFA7xfiU/UXU1aQM21ec4aq1AKg3NpcyYM3k8HzFZVkGgOpedxh0/pQnDjWSma8aHGOjyfYil8dWPyX7X6AO8ju4VNi3b+gd/jXX4j6fIxRBUA6cSiHl86yJGyls2blhyjTEUD/Hp4WL/3qf0Jrd7c/B8M9zA94GTt5rfsnnKwdgLpyZX+xZV6xwzUkCu0D/tD+zriz1Dl1PLaztytTufv5Gvs2uVQcSWCYvd8DjMR/t4qeX3FJqpmgCRF/TK1o5ad0bcxDTu3JMIPxPnz3sTbPwRi26CzVG6rNEB7sfWHzNO9IWBrrGnOkmsOg96R3I1oNXFxsgX3Goy7KRL71mTxjQlw5KdC45hSOYMFcZ8LXVyGK9KldCUYg+OUawCNru+e+glVT3p0fjV/R3LRSEe551+9jsUPXii7gGiKBx0Ivr+00y1wqI0EWy0oWMGlTSfBmE2pw+K+Yfia2CXUVNak8uFRilEcJQVoVj65opM00PsDeiX/HXHNkN4j72AU7uspP5bOXmD4osONJqwvLW9hxCLBNE/ycWL06Wiu4=" |
| 101 | + file_glob: true |
| 102 | + file: llvm-*.tar.xz |
| 103 | + skip_cleanup: true |
| 104 | + on: |
| 105 | + tags: true |
| 106 | + |
| 107 | +notifications: |
| 108 | + email: false |
0 commit comments