forked from canonical/mir
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
127 lines (118 loc) · 3.96 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
language: cpp
branches:
only:
- staging
- trying
- master
# release branch
- /^release\/[\d\.]+$/
# release tag
- /^v[\d\.]+$/
stages:
- name: process snaps
if: (type = pull_request
AND head_repo = MirServer/mir)
OR (type != pull_request
AND repo = MirServer/mir)
- name: test
# don't test on pushes to master or release pull requests or tag events
# TODO: enable release pull request testing when we have more CI power
if: NOT (( branch = master AND type = push )
OR ( head_branch =~ ^release/[\d\.]+$ ))
AND tag IS blank
- name: sanitize
if: type = cron
AND repo = MirServer/mir
AND branch = master
- name: upload to ppa:mir-team
if: type = push
AND repo = MirServer/mir
AND ( branch = master
OR branch =~ ^release/[\d\.]+$
OR tag =~ ^v[\d\.]+$ )
- name: process snaps
if: repo = MirServer/mir
env:
global:
# SPREAD_GOOGLE_KEY
- secure: C+R+J6LFdpge/aRDiCSVmU+Ps4sA0BhibQZgHi2iy20QkuD3NFiKcU7mISiEfWzsrRyLxtxYadWrfXXovyaSKDkIzuArVi/l5PyYRlLh7DYM/chk0CEbcoBpRKllgH57wU8ki7mCvksIbMdjZZo8iFIL79JUMaMvCK/QOwjqvj7d0I0qsJRT228G3n1KXKgRRL/9cafnjnzjHorrPpVJAkg8T7/QLO7uh7D5L5+KcHcf2Ws2/V05lhFXApCxL2QPLTCjn7cONKCaRfg35MkeFxWwTNm+JhGEW70A8Uk3qFWObWMPDEGrLkS5RF1Gw4zXrlqOyZRtK6VCaqsnJPVhqhLXliq9jNd/dbr/6L7hSa/t8ewbkXFuOqJzq240bEn4OCUFJOl9mwhklj14/Y+/xV3wRxIF6qdCDB99nirJKtwPjeYsKdCHLwKN/kj6yHhAU9JBDm+D5Odo9ny33eFPfQ+6SyGHL6BZKg7sVi8wbZwiTjmoN3wFZwSVto/4w1JiUHhJkMkEeIOlsQyfzJZl1DOTQDl4UiEAa8lhjvfqz8TqdXdu/3UPC9tokjnm45Joa5WkcnnvVsBoro+mSar6DipC6nb/+5yuguIEzcGha8iNyNMpMY0Ei0V+PwCl+M5k/vFtdA+HbSGs6VI4JvRd9awQ7geohn5ram5l4as67Sg=
- DEBFULLNAME="Mir CI Bot"
- DEBEMAIL="[email protected]"
- SPREAD_PATH=/tmp/spread
matrix:
- SYSTEM=google:ubuntu-devel-64 VARIANT=amd64
- SYSTEM=google:fedora-rawhide-64 VARIANT=amd64
- SYSTEM=google:ubuntu-16.04-64 VARIANT=amd64
- SYSTEM=google:ubuntu-16.04-64 VARIANT=arm64
- SYSTEM=google:ubuntu-18.04-64 VARIANT=clang
- SYSTEM=google:ubuntu-19.04-64 VARIANT=amd64
- SYSTEM=google:fedora-29-64 VARIANT=amd64
- SYSTEM=google:fedora-30-64 VARIANT=amd64
matrix:
allow_failures:
- env: SYSTEM=google:fedora-rawhide-64 VARIANT=amd64
fast_finish: true
before_install:
- mkdir -p ${SPREAD_PATH}
- pushd "${SPREAD_PATH}"
- curl -s -O https://niemeyer.s3.amazonaws.com/spread-amd64.tar.gz
- tar xzvf spread-amd64.tar.gz
- popd
script:
- ${SPREAD_PATH}/spread -v $SYSTEM:...:$VARIANT
jobs:
include:
- &ppa-upload
stage: upload to ppa:mir-team
env: RELEASE=16.04
git:
depth: false
before_install: &decrypt-bot-data
- openssl aes-256-cbc -K $encrypted_93b6eceb9e8b_key -iv $encrypted_93b6eceb9e8b_iv
-in tools/bot-data.tar.xz.enc -out tools/bot-data.tar.xz -d
- tar --extract --xz --file tools/bot-data.tar.xz --directory ${HOME}
script:
- tools/ppa-upload.sh
addons:
apt:
packages:
- debhelper
- devscripts
- dput
- fakeroot
- python-bzrlib
- python-launchpadlib
- python-paramiko
- <<: *ppa-upload
env: RELEASE=18.04
- <<: *ppa-upload
env: RELEASE=19.04
- <<: *ppa-upload
env: RELEASE=devel
- &sanitize
stage: sanitize
notifications:
email:
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=asan
- <<: *sanitize
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=tsan
- <<: *sanitize
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=ubsan
- <<: *sanitize
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=asan_clang
- <<: *sanitize
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=tsan_clang
- <<: *sanitize
env: SYSTEM=google:ubuntu-18.04-64 VARIANT=ubsan_clang
- stage: process snaps
env: ~
language: python
python: [3.6]
dist: xenial
before_install: *decrypt-bot-data
install:
- pip install -r tools/requirements.txt
- if [ ${TRAVIS_EVENT_TYPE} == cron ]; then sudo snap install review-tools; fi
script:
- tools/process_snaps.py