sudo: required dist: trusty language: cpp cache: ccache # regex is for release tags branches: only: - master - /^v(\d+\.){2}\d+$/ stages: - Linux - name: "Windows Stage 1: Dependencies (OpenSSL, Qt)" if: type = push OR type = cron - name: "Windows Stage 2: Dependencies (other)" if: type = push OR type = cron - name: "Windows Stage 3: qTox" if: type = push OR type = cron env: global: - CIRP_GITHUB_REPO_SLUG="qTox/qTox-nightly-releases" jobs: include: - stage: Linux os: linux env: JOB=verify-commit-format script: "./.travis/$JOB.sh" - stage: Linux os: linux env: JOB=build-docs DOXYGEN_CONFIG_FILE=doxygen.conf script: "./.travis/$JOB.sh" - stage: Linux os: linux env: JOB=build-gitstats GITSTATS_DIR=gitstats addons: apt: packages: - gitstats script: "./.travis/$JOB.sh" # the actual compilin' - stage: Linux os: linux env: JOB=build-ubuntu-14-04 script: "./.travis/$JOB.sh" - stage: "Windows Stage 1: Dependencies (OpenSSL, Qt)" os: linux # Makes the cache this job creates avaiable only to jobs with WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686, # making sure that i686 and x86_64 caches don't overwrite each other env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686 script: ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage1 services: - docker cache: directories: - /opt/build-windows/i686 - stage: "Windows Stage 1: Dependencies (OpenSSL, Qt)" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64 script: ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage1 services: - docker cache: directories: - /opt/build-windows/x86_64 - stage: "Windows Stage 2: Dependencies (other)" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686 script: ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage2 services: - docker cache: directories: - /opt/build-windows/i686 - stage: "Windows Stage 2: Dependencies (other)" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64 script: ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage2 services: - docker cache: directories: - /opt/build-windows/x86_64 - stage: "Windows Stage 3: qTox" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686 script: - ./.travis/build-windows.sh i686 release /opt/build-windows/i686 stage3 - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./workspace/i686/qtox/release/{setup-qtox-i686-release.exe,setup-qtox-i686-release.exe.sha256,qtox-i686-release.zip,qtox-i686-release.zip.sha256} "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker cache: directories: - /opt/build-windows/i686 - stage: "Windows Stage 3: qTox" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64 script: - ./.travis/build-windows.sh x86_64 release /opt/build-windows/x86_64 stage3 - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./workspace/x86_64/qtox/release/{setup-qtox-x86_64-release.exe,setup-qtox-x86_64-release.exe.sha256,qtox-x86_64-release.zip,qtox-x86_64-release.zip.sha256} "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker cache: directories: - /opt/build-windows/x86_64 - stage: "Windows Stage 3: qTox" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=i686 script: - ./.travis/build-windows.sh i686 debug /opt/build-windows/i686 stage3 - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./workspace/i686/qtox/debug/{qtox-i686-debug.zip,qtox-i686-debug.zip.sha256} "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker cache: directories: - /opt/build-windows/i686 - stage: "Windows Stage 3: qTox" os: linux env: WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE=x86_64 script: - ./.travis/build-windows.sh x86_64 debug /opt/build-windows/x86_64 stage3 - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./workspace/x86_64/qtox/debug/{qtox-x86_64-debug.zip,qtox-x86_64-debug.zip.sha256} "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker cache: directories: - /opt/build-windows/x86_64 - stage: "macOS, AppImage and Flatpak" os: osx osx_image: xcode9.2 env: JOB=build-osx cache: timeout: 300 # seconds ccache: true directories: - $HOME/Library/Caches/Homebrew before_cache: - brew cleanup script: - "./.travis/$JOB.sh" - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./{qTox.dmg,qTox.dmg.sha256} "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh - stage: "macOS, AppImage and Flatpak" os: linux env: JOB=APPIMAGE script: - ./appimage/build-appimage.sh - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./output/* "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker - stage: "macOS, AppImage and Flatpak" os: linux env: JOB=FLATPAK script: - ./flatpak/build-flatpak.sh - export ARTIFACTS_DIR="$(mktemp -d)" - cp -a ./output/* "$ARTIFACTS_DIR" - .travis/cirp/cleanup1.sh - .travis/cirp/store.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup2.sh services: - docker - stage: "Nightly publishing" if: type == cron script: - export ARTIFACTS_DIR="$(mktemp -d)" - .travis/cirp/collect.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup4.sh - .travis/cirp/publish.sh "$ARTIFACTS_DIR" - .travis/cirp/cleanup5.sh cache: directories: - /opt/cirp deploy: # Linux AppImage - provider: releases api_key: secure: "BRbzTWRvadALRQSTihMKruOj64ydxusMUS9FQR//qFlS345ZYfYta43W//4LcWWDKtj6IvA6DRqNdabgWnpbpxpnm9gVftGUdOKlU3niPZhwsMkB2M12QHUnAP6DVOfGPvdciBV+6mu73SSxniEcrYjZ1CrRX7mknmehPpVKxNk=" file_glob: true file: ./output/* on: condition: $JOB == APPIMAGE repo: qTox/qTox tags: true skip_cleanup: true # Linux Flatpak - provider: releases api_key: secure: "BRbzTWRvadALRQSTihMKruOj64ydxusMUS9FQR//qFlS345ZYfYta43W//4LcWWDKtj6IvA6DRqNdabgWnpbpxpnm9gVftGUdOKlU3niPZhwsMkB2M12QHUnAP6DVOfGPvdciBV+6mu73SSxniEcrYjZ1CrRX7mknmehPpVKxNk=" file_glob: true file: ./output/* on: condition: $JOB == FLATPAK repo: qTox/qTox tags: true skip_cleanup: true # osx binary - provider: releases api_key: secure: "BRbzTWRvadALRQSTihMKruOj64ydxusMUS9FQR//qFlS345ZYfYta43W//4LcWWDKtj6IvA6DRqNdabgWnpbpxpnm9gVftGUdOKlU3niPZhwsMkB2M12QHUnAP6DVOfGPvdciBV+6mu73SSxniEcrYjZ1CrRX7mknmehPpVKxNk=" file: "./qTox.dmg" file: "./qTox.dmg.sha256" on: condition: $TRAVIS_OS_NAME == osx repo: qTox/qTox tags: true skip_cleanup: true # Windows Installer 64Bit - provider: releases api_key: secure: "BRbzTWRvadALRQSTihMKruOj64ydxusMUS9FQR//qFlS345ZYfYta43W//4LcWWDKtj6IvA6DRqNdabgWnpbpxpnm9gVftGUdOKlU3niPZhwsMkB2M12QHUnAP6DVOfGPvdciBV+6mu73SSxniEcrYjZ1CrRX7mknmehPpVKxNk=" file: "./workspace/x86_64/qtox/release/setup-qtox-x86_64-release.exe" file: "./workspace/x86_64/qtox/release/setup-qtox-x86_64-release.exe.sha256" on: condition: $WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE == x86_64 && -f /home/travis/build/qTox/qTox/stage3 && -f /home/travis/build/qTox/qTox/release repo: qTox/qTox tags: true skip_cleanup: true # Windows Installer 32Bit - provider: releases api_key: secure: "BRbzTWRvadALRQSTihMKruOj64ydxusMUS9FQR//qFlS345ZYfYta43W//4LcWWDKtj6IvA6DRqNdabgWnpbpxpnm9gVftGUdOKlU3niPZhwsMkB2M12QHUnAP6DVOfGPvdciBV+6mu73SSxniEcrYjZ1CrRX7mknmehPpVKxNk=" file: "./workspace/i686/qtox/release/setup-qtox-i686-release.exe" file: "./workspace/i686/qtox/release/setup-qtox-i686-release.exe.sha256" on: condition: $WINDOWS_BUILD_ARCH_CACHE_TRICK_VARIABLE == i686 && -f /home/travis/build/qTox/qTox/stage3 && -f /home/travis/build/qTox/qTox/release repo: qTox/qTox tags: true skip_cleanup: true # branch for windows jenkins build - provider: script script: .travis/deploy-jenkins-branch.sh on: tags: true skip_cleanup: true after_success: - > test $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && test $JOB == "build-docs" && bash ./.travis/deploy-docs.sh - > test $TRAVIS_PULL_REQUEST == "false" && test $TRAVIS_BRANCH == "master" && test $JOB == "build-gitstats" && bash ./.travis/deploy-gitstats.sh