os: linux dist: focal language: cpp compiler: - gcc cache: ccache: true directories: - Toolchain/Cache/ notifications: irc: if: repo = SerenityOS/serenity channels: - "chat.freenode.net#serenityos" template: - "%{repository_slug}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}" - "Subject: %{commit_subject}" - "Details: %{build_url}" before_install: - sudo apt-get update -qq # These packages are already part of the Travis image: #- sudo apt-get install -y g++-9 libstdc++-9-dev cmake shellcheck # These aren't: - sudo apt-get install -y libmpfr-dev libmpc-dev libgmp-dev clang-format-10 # If we ever do any qemu-emulation on Travis, we should re-enable this: #- e2fsprogs qemu-system-i386 qemu-utils - g++ --version - cmake --version - shellcheck --version script: - export SERENITY_ROOT="$(pwd)" - Meta/check-style.sh - Meta/lint-clang-format.sh --overwrite-inplace && git diff --exit-code - Meta/lint-executable-resources.sh - Meta/lint-ipc-ids.sh - Meta/lint-shell-scripts.sh - cd Toolchain - TRY_USE_LOCAL_TOOLCHAIN=y ./BuildIt.sh - cd "$SERENITY_ROOT" - mkdir -p Build - cd Build - cmake .. -DBUILD_LAGOM=1 -DALL_THE_DEBUG_MACROS=1 - make -j2 - ../Meta/check-symbols.sh - CTEST_OUTPUT_ON_FAILURE=1 make test - cd Meta/Lagom - DISABLE_DBG_OUTPUT=1 ./test-js # These feel like they should go into a script. However, that would be a Travis-specific script, and this is *the* right place for travis-specific stuff. - cd "$SERENITY_ROOT"/Toolchain/Cache - du -ch * || true - du -sch /home/travis/.ccache/* || true