mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
f97135aac5
Saves time on the CI job, and the produced binary isn't used for releases so it's uneeded to keep it unmodified.
301 lines
10 KiB
YAML
301 lines
10 KiB
YAML
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
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- lcov
|
|
script: "./.travis/$JOB.sh"
|
|
after_success:
|
|
# Create lcov report
|
|
- lcov --directory _build --capture --output-file coverage.info
|
|
# Filter out system headers and test sources
|
|
- lcov --remove coverage.info '/usr/*' '*/test/*' '*/*_autogen/*' --output-file coverage.info
|
|
# Upload report to codecov.io
|
|
- bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
|
|
- 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: xcode10.2 # macOS 10.14, oldest supported SDK according to https://developer.apple.com/support/xcode/
|
|
env: JOB=build-osx
|
|
cache:
|
|
timeout: 300 # seconds
|
|
ccache: true
|
|
directories:
|
|
- $HOME/Library/Caches/Homebrew
|
|
addons:
|
|
homebrew:
|
|
brewfile: ./osx/Brewfile
|
|
update: true
|
|
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
|