blob: b2e20e8614fa8f7fcaa2cc464585e14f94b8515c (
plain)
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
|
---
stages:
- code-check
- build
- tests
- package
- benchmark
variables:
DOCKER_DRIVER: overlay
# Cache a folder between builds.
# Tox sets it to be our pip cache.
cache:
untracked: true
key: soledad-shared-pip-cache
paths:
- testing/.cache/
before_script:
- echo "Running on ${HOST_HOSTNAME:=$(hostname)}"
.job_template: &job_definition
stage: package
image: "0xacab.org:4567/leap/gitlab-buildpackage:build_${DIST}_${ARCH}"
script:
- "if [ -z \"$(git remote | grep upstream)\" ]; then git remote add upstream https://0xacab.org/leap/soledad; fi"
- "git fetch --tags upstream"
- "pwd; git describe"
- build-build-package
# Test the package with lintian
- build-test-lintian
- "if [ -n \"${SSH_PRIVATE_KEY}\" ]; then upload-package; else echo \"Skipping package upload because SSH_PRIVATE_KEY is not set.\"; fi"
# sleep 1h to allow debugging of running container
# - sleep 3600
artifacts:
expire_in: 1w
paths:
- '*_*.xz'
- '*_*.dsc'
- '*_amd64.changes'
- '*.deb'
- 'results/*'
code-check:
stage: code-check
image: 0xacab.org:4567/leap/soledad:latest
script:
- cd testing
- tox -e code-check
tests:
stage: tests
image: 0xacab.org:4567/leap/soledad:latest
services:
- couchdb
script:
- cd testing
- tox -- --couch-url http://couchdb:5984
benchmark:
stage: benchmark
image: 0xacab.org:4567/leap/soledad:latest
tags:
- benchmark
services:
- couchdb
script:
- '[ -n "${BENCHMARK_ALL_COMMITS}" ] && git checkout master scripts/benchmark/benchmark-all-commits.sh'
- '[ -n "${BENCHMARK_ALL_COMMITS}" ] && ./scripts/benchmark/setup-all-commits-env.sh'
- cd testing
- curl -s couchdb:5984
# You can provide a $NETRC variable containing the creds for your
# elasticsearch instance so it's protected from being leaked in the
# CI console
# We can't get it working inside docker for unknown reasons.
# - echo "$NETRC" > /root/.netrc && chmod 600 /root/.netrc
#
# Add $PYTEST_OPTS to pytest.ini to allow posting benchmark tests
# to an elasticsearch instance
- echo "addopts=$PYTEST_OPTS" >> pytest.ini && chmod 600 pytest.ini
- /usr/bin/unbuffer tox --recreate -e benchmark -- --couch-url http://couchdb:5984 | /usr/bin/ts -s
# Output locally saved benchmarks if they exist
- 'if [ -d .benchmarks ]; then find .benchmarks -type f -exec cat {} \; ; fi'
build_docker_image:
stage: build
image: 0xacab.org:4567/leap/soledad:latest
services:
- docker:dind
tags:
- docker-in-docker
script:
- scripts/docker/build-docker-image.sh
package:amd64_jessie:
variables:
ARCH: "amd64"
DIST: "jessie"
REPONAMES: "platform"
# Default is to fail on warnings, we disable it here
# unless a manpage is included (see #8895)
LINTIAN_OPTS: "-X filename-length"
<<: *job_definition
# package:amd64_stretch:
# variables:
# ARCH: "amd64"
# DIST: "stretch"
# REPONAMES: "platform"
# # Default is to fail on warnings, we disable it here
# # unless a manpage is included (see #8895)
# LINTIAN_OPTS: "-X filename-length"
# <<: *job_definition
|