.gitlab-ci.yml 3.3 KB
Newer Older
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
# Copyright © 2015-2018 Collabora Ltd.
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

image: debian:stretch-slim

stages:
  - build

before_script:
  - ./tools/ci-install.sh
30 31 32 33 34 35 36 37
  - mkdir -p .ccache
  - export CCACHE_BASEDIR="$(pwd)"
  - export CCACHE_DIR="$CCACHE_BASEDIR/.ccache"
  # Debian's ccache package creates symlinks here for all supported
  # compilers
  - export PATH="/usr/lib/ccache:$PATH"

cache:
38
  key: ${CI_JOB_NAME}
39 40
  paths:
    - .ccache/
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

variables:
  ci_in_docker: "yes"
  ci_parallel: "2"
  ci_sudo: "yes"
  ci_distro: "debian"
  ci_suite: "stretch"

build:production:
  stage: build
  image: "debian:stretch-slim"
  variables:
    ci_variant: "production"
  script: &script
    - chown -R user .
    - runuser -u user ./tools/ci-build.sh

build:debug:
  stage: build
  image: "debian:stretch-slim"
  variables:
    ci_variant: "debug"
  script: *script

build:reduced:
  stage: build
67
  when: manual
68 69 70 71 72 73 74
  image: "debian:stretch-slim"
  variables:
    ci_variant: "reduced"
  script: *script

build:legacy:
  stage: build
75
  when: manual
76 77 78 79 80 81 82 83 84
  image: "debian:stretch-slim"
  variables:
    ci_variant: "legacy"
  script: *script

build:cmake:
  stage: build
  image: "debian:stretch-slim"
  variables:
85
    ci_buildsys: "cmake-dist"
86 87
  script: *script

88
build:i686-w64-mingw32-debug:
89 90 91 92
  stage: build
  image: "debian:stretch-slim"
  variables:
    ci_host: "i686-w64-mingw32"
93
    ci_variant: "debug"
94 95
  script: *script

96
build:i686-w64-mingw32-cmake:
97
  stage: build
98
  when: manual
99 100 101 102 103 104
  image: "debian:stretch-slim"
  variables:
    ci_buildsys: "cmake"
    ci_host: "i686-w64-mingw32"
  script: *script

105
build:x86_64-w64-mingw32:
106 107 108 109 110 111
  stage: build
  image: "debian:stretch-slim"
  variables:
    ci_host: "i686-w64-mingw32"
  script: *script

112
build:x86_64-w64-mingw32-cmake-debug:
113 114 115 116 117
  stage: build
  image: "debian:stretch-slim"
  variables:
    ci_buildsys: "cmake"
    ci_host: "i686-w64-mingw32"
118
    ci_variant: "debug"
119 120 121
  script: *script

build:jessie:
122
  when: manual
123 124 125 126 127 128
  stage: build
  image: "debian:jessie-slim"
  variables:
    ci_suite: "jessie"
  script: *script

129 130 131 132 133 134 135 136
build:buster:
  when: manual
  stage: build
  image: "debian:buster-slim"
  variables:
    ci_suite: "buster"
  script: *script

137
build:xenial:
138
  when: manual
139 140 141 142 143 144 145 146
  stage: build
  image: "ubuntu:xenial"
  variables:
    ci_distro: "ubuntu"
    ci_suite: "xenial"
  script: *script

# vim:set sw=2 sts=2 et: