sudo: required dist: xenial language: cpp cache: ccache # regex is for master, release branches, and release tags branches: only: - master - /^v\d+\.\d+-dev$/ - /^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-16-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.3 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 # This is the access token for pushing release builds on Tags # Owner: sudden6 # See https://docs.travis-ci.com/user/deployment/releases/#authenticating-with-an-oauth-token token: secure: "UAvVIUgfH8VGAzMsKk62yz26oqjNpUxEEyZ7OSjt09VoTMuepZd9wPmLCv0b+jFrk5BwQG9gpDzTD7vZ0Un1g1lGD23K801tvMRue/SO/KmOyeYrqd6o7MEFGb22qmmVoid/hqKLQFOxt/5HYj7fnCzG8EUuA9BvdWmsl4ir8Js=" file_glob: true file: ./output/* on: condition: $JOB == APPIMAGE repo: qTox/qTox tags: true skip_cleanup: true draft: true # Linux Flatpak - provider: releases token: secure: "UAvVIUgfH8VGAzMsKk62yz26oqjNpUxEEyZ7OSjt09VoTMuepZd9wPmLCv0b+jFrk5BwQG9gpDzTD7vZ0Un1g1lGD23K801tvMRue/SO/KmOyeYrqd6o7MEFGb22qmmVoid/hqKLQFOxt/5HYj7fnCzG8EUuA9BvdWmsl4ir8Js=" file_glob: true file: ./output/* on: condition: $JOB == FLATPAK repo: qTox/qTox tags: true skip_cleanup: true draft: true # osx binary - provider: releases token: secure: "UAvVIUgfH8VGAzMsKk62yz26oqjNpUxEEyZ7OSjt09VoTMuepZd9wPmLCv0b+jFrk5BwQG9gpDzTD7vZ0Un1g1lGD23K801tvMRue/SO/KmOyeYrqd6o7MEFGb22qmmVoid/hqKLQFOxt/5HYj7fnCzG8EUuA9BvdWmsl4ir8Js=" file: - "./qTox.dmg" - "./qTox.dmg.sha256" on: condition: $TRAVIS_OS_NAME == osx repo: qTox/qTox tags: true skip_cleanup: true draft: true # Windows Installer 64Bit - provider: releases token: secure: "UAvVIUgfH8VGAzMsKk62yz26oqjNpUxEEyZ7OSjt09VoTMuepZd9wPmLCv0b+jFrk5BwQG9gpDzTD7vZ0Un1g1lGD23K801tvMRue/SO/KmOyeYrqd6o7MEFGb22qmmVoid/hqKLQFOxt/5HYj7fnCzG8EUuA9BvdWmsl4ir8Js=" file: - "./workspace/x86_64/qtox/release/setup-qtox-x86_64-release.exe" - "./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 draft: true # Windows Installer 32Bit - provider: releases token: secure: "UAvVIUgfH8VGAzMsKk62yz26oqjNpUxEEyZ7OSjt09VoTMuepZd9wPmLCv0b+jFrk5BwQG9gpDzTD7vZ0Un1g1lGD23K801tvMRue/SO/KmOyeYrqd6o7MEFGb22qmmVoid/hqKLQFOxt/5HYj7fnCzG8EUuA9BvdWmsl4ir8Js=" file: - "./workspace/i686/qtox/release/setup-qtox-i686-release.exe" - "./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 draft: 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