summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: f35992f2522b897676a9d5458c71bd1e2b0e6f4c (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
116
117
118
119
120
121
122
123
124
125
# .gitlab-ci.yml -- to test some source code build scenarios
# Copyright (C) 2016-2019  Olaf Meeuwissen
#
# License: GPL-3.0+

variables:
  REGISTRY_HUB: "registry.gitlab.com/sane-project/ci-envs"
  CONFIGURE_MINI: "--enable-silent-rules"
  CONFIGURE_FULL: "--with-usb --enable-avahi --enable-pnm-backend"

stages:
  - prepare
  - compile
  - archive
  - release

prepare:
  image: $REGISTRY_HUB:debian-stretch-mini
  stage: prepare
  script:
  - git ls-files | xargs ./tools/style-check.sh
  - ./autogen.sh
  - ./tools/create-changelog.sh
  - ./tools/update-upstreams.sh
  - ./configure
  - make dist
  artifacts:
    paths:
    - sane-backends-*.tar.gz
    expire_in: 1 day

.compile_template: &compile_definition
  stage: compile
  script:
  - mkdir build
  - cd build
  - tar xzf ../sane-backends-*.tar.gz --strip-components=1
  - ./configure $CONFIGURE_OPTS
  - make -j2 -k $MAKE_FLAGS

compile:debian-9-mini:
  image: $REGISTRY_HUB:debian-stretch-mini
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI"
    MAKE_FLAGS: "CFLAGS=-Werror"
  <<: *compile_definition

compile:debian-9-full:
  image: $REGISTRY_HUB:debian-stretch-full
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
    MAKE_FLAGS: "CFLAGS=-Werror CXXFLAGS=-Werror"
  <<: *compile_definition
  after_script:
  - make -C build/doc html-pages
  - rm -rf lists && mkdir lists && mv build/doc/*.html lists/
  - cd build/doc && doxygen doxygen-sanei.conf && mv sanei-html ../../doc
  artifacts:
    paths:
    - sane-backends-*.tar.gz
    - lists
    - doc/sanei-html
    expire_in: 1 day

compile:debian-10-mini:
  image: $REGISTRY_HUB:debian-buster-mini
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI"
    #MAKE_FLAGS: "CFLAGS=-Werror"
  <<: *compile_definition

compile:debian-10-full:
  image: $REGISTRY_HUB:debian-buster-full
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
    #MAKE_FLAGS: "CFLAGS=-Werror"
  <<: *compile_definition

compile:fedora-29-clang:
  image: $REGISTRY_HUB:fedora-29-clang
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
  <<: *compile_definition

compile:fedora-30-clang:
  image: $REGISTRY_HUB:fedora-30-clang
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
  <<: *compile_definition

compile:alpine-3.10-musl:
  image: $REGISTRY_HUB:alpine-3.10-musl
  variables:
    CONFIGURE_OPTS: "$CONFIGURE_MINI $CONFIGURE_FULL"
  <<: *compile_definition

archive:
  image: $REGISTRY_HUB:debian-stretch-full
  stage: archive
  dependencies:
  - compile:debian-9-full
  script:
  - tar xzf sane-backends-*.tar.gz --strip-components=1
  - rm sane-backends-*.tar.gz
  - ./configure
  - make distcheck
  artifacts:
    paths:
    - sane-backends-*.tar.gz
    - lists
    - doc/sanei-html

release:
  image: alpine
  stage: release
  before_script:
    - apk --no-cache add curl git jq
  script:
    - ./tools/create-release.sh
  only:
    - tags
  when: manual
  variables:
    GIT_DEPTH: "3"
  allow_failure: false