.gitlab-ci.yml 6.3 KB
Newer Older
1 2
variables:
  MAKE: make
3
  GIT_DEPTH: 100
4

5
stages:
6
  - prebuild
7
  - native_build
8 9 10
  - cross_build


11 12 13 14 15
# Common templates

# Default native build jobs that are always run
.native_build_default_job_template: &native_build_default_job_definition
  stage: native_build
16 17 18 19 20 21 22 23 24
  cache:
    paths:
      - ccache/
    key: "$CI_JOB_NAME"
  before_script:
    - mkdir -p ccache
    - export CC="ccache gcc"
    - export CCACHE_BASEDIR=${PWD}
    - export CCACHE_DIR=${PWD}/ccache
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
  script:
    - mkdir build
    - cd build
    - ../autogen.sh || (cat config.log && exit 1)
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) distcheck

# Extra native build jobs that are only run post-merge, or
# when code is pushed to a branch with "ci-full-" name prefix
.native_build_extra_job_template: &native_build_extra_job_definition
  <<: *native_build_default_job_definition
  only:
    - master
    - /^ci-full-.*$/


40
# Default cross build jobs that are always run
41 42
.cross_build_default_job_template: &cross_build_default_job_definition
  stage: cross_build
43 44 45 46 47 48 49 50 51
  cache:
    paths:
      - ccache/
    key: "$CI_JOB_NAME"
  before_script:
    - mkdir -p ccache
    - export CC="ccache ${ABI}-gcc"
    - export CCACHE_BASEDIR=${PWD}
    - export CCACHE_DIR=${PWD}/ccache
52 53 54 55
  script:
    - mkdir build
    - cd build
    - ../autogen.sh $CONFIGURE_OPTS || (cat config.log && exit 1)
56
    - $MAKE -j $(getconf _NPROCESSORS_ONLN)
57

58 59 60 61 62 63 64 65
# Extra cross build jobs that are only run post-merge, or
# when code is pushed to a branch with "ci-full-" name prefix
.cross_build_extra_job_template: &cross_build_extra_job_definition
  <<: *cross_build_default_job_definition
  only:
    - master
    - /^ci-full-.*$/

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
# Native architecture build + test jobs

x64-debian-9:
  <<: *native_build_extra_job_definition
  image: quay.io/libvirt/buildenv-libvirt-debian-9:latest

x64-debian-10:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-debian-10:latest

x64-debian-sid:
  <<: *native_build_extra_job_definition
  image: quay.io/libvirt/buildenv-libvirt-debian-sid:latest

x64-centos-7:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-centos-7:latest

x64-centos-8:
  <<: *native_build_extra_job_definition
  image: quay.io/libvirt/buildenv-libvirt-centos-8:latest

x64-fedora-30:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-fedora-30:latest

x64-fedora-31:
  <<: *native_build_extra_job_definition
  image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest

x64-fedora-rawhide:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-fedora-rawhide:latest

x64-opensuse-151:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-opensuse-151:latest

x64-ubuntu-1604:
  <<: *native_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-ubuntu-1604:latest

x64-ubuntu-1804:
  <<: *native_build_extra_job_definition
  image: quay.io/libvirt/buildenv-libvirt-ubuntu-1804:latest


# Cross compiled build jobs

116
armv6l-debian-9:
117
  <<: *cross_build_extra_job_definition
118
  image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-armv6l:latest
119

120
mips64el-debian-9:
121
  <<: *cross_build_extra_job_definition
122
  image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-mips64el:latest
123

124
mips-debian-9:
125
  <<: *cross_build_extra_job_definition
126
  image: quay.io/libvirt/buildenv-libvirt-debian-9-cross-mips:latest
127

128
aarch64-debian-10:
129
  <<: *cross_build_extra_job_definition
130
  image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-aarch64:latest
131

132
ppc64le-debian-10:
133
  <<: *cross_build_extra_job_definition
134
  image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-ppc64le:latest
135

136
s390x-debian-10:
137
  <<: *cross_build_default_job_definition
138
  image: quay.io/libvirt/buildenv-libvirt-debian-10-cross-s390x:latest
139

140
armv7l-debian-sid:
141
  <<: *cross_build_default_job_definition
142
  image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-armv7l:latest
143

144
i686-debian-sid:
145
  <<: *cross_build_extra_job_definition
146
  image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-i686:latest
147

148
mipsel-debian-sid:
149
  <<: *cross_build_extra_job_definition
150
  image: quay.io/libvirt/buildenv-libvirt-debian-sid-cross-mipsel:latest
151

152 153 154 155 156 157 158 159 160
mingw32-fedora-30:
  <<: *cross_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-fedora-30-cross-mingw32:latest

mingw64-fedora-30:
  <<: *cross_build_default_job_definition
  image: quay.io/libvirt/buildenv-libvirt-fedora-30-cross-mingw64:latest


161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
# This artifact published by this job is downloaded by libvirt.org to
# be deployed to the web root:
#    https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=website
website:
  stage: prebuild
  script:
    - mkdir build
    - cd build
    - ../autogen.sh --prefix=$(pwd)/../vroot || (cat config.log && exit 1)
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) -C docs
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) -C docs install
    - cd ..
    - mv vroot/share/doc/libvirt/html/ website
  image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
  artifacts:
    expose_as: 'Website'
    name: 'website'
    when: on_success
    expire_in: 30 days
    paths:
      - website
182 183


184 185 186 187 188 189 190 191 192 193
codestyle:
  stage: prebuild
  script:
    - mkdir build
    - cd build
    - ../autogen.sh || (cat config.log && exit 1)
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) syntax-check
  image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest


194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
# This artifact published by this job is downloaded to push to Weblate
# for translation usage:
#    https://gitlab.com/libvirt/libvirt/-/jobs/artifacts/master/download?job=potfile
potfile:
  stage: prebuild
  only:
    - master
  script:
    - mkdir build
    - cd build
    - ../autogen.sh || (cat config.log && exit 1)
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) -C src generated-sources
    - $MAKE -j $(getconf _NPROCESSORS_ONLN) -C po libvirt.pot
    - cd ..
    - mv build/po/libvirt.pot libvirt.pot
  image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
  artifacts:
    expose_as: 'Potfile'
    name: 'potfile'
    when: on_success
    expire_in: 30 days
    paths:
      - libvirt.pot
217 218 219 220 221 222 223 224 225 226 227 228 229 230


# Check that all commits are signed-off for the DCO. Skip
# on master branch and -maint branches, since we only need
# to test developer's personal branches.
dco:
  stage: prebuild
  image: quay.io/libvirt/buildenv-libvirt-fedora-31:latest
  script:
    - ./scripts/require-dco.py
  only:
    - branches
  except:
    - /^v.*-maint$/
231
    - master