summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 99a56298d939bfe0f8fe4043cd14455d3bdfe47e (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
126
stages:
  - build
  - deploy

fedora-gcc-x86_64:
  stage: build
  image: fedora:34
  except:
    - tags
  before_script:
    - dnf update -y
    - dnf install -y autoconf autoconf-archive automake bison dbus-x11 diffutils flex gcc git glib2-devel graphviz-devel lcov libxslt make vala weasyprint
  script:
    - git fetch --tags
    - ./autogen.sh --prefix=$HOME/vala-installed --enable-coverage
    - make -j4
    - make install
    - make -j4 coverage-report VERBOSE=1
    - make -C doc internal-api-docs
    - make -C doc/manual html pdf
  coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/'
  artifacts:
    name: "vala-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
    paths:
      - "coverage"
      - "doc/internal-apis"
      - "doc/manual/html"
      - "doc/manual/manual.pdf"
    expire_in: 2 days

fedora-clang-x86_64:
  stage: build
  image: fedora:34
  except:
    - tags
  variables:
    CC: clang
  before_script:
    - dnf update -y
    - dnf install -y autoconf autoconf-archive automake bash bison dbus-x11 diffutils flex clang git glib2-devel graphviz-devel lcov libxslt make vala
  script:
    - git fetch --tags
    - ./autogen.sh
    - make -j4
    - make -j4 bootstrap
    - make -j4 check VERBOSE=1

ubuntu-clang-x86_64:
  stage: build
  image: ubuntu:latest
  except:
    - tags
  variables:
    CC: clang
    DEBIAN_FRONTEND: noninteractive
  before_script:
    - apt update
    - apt install -y automake autoconf-archive libtool bison dbus flex clang git libglib2.0-dev libgraphviz-dev libgirepository1.0-dev lcov xsltproc make valac
  script:
    - git fetch --tags
    - ./autogen.sh
    - make -j4
    - make -j4 bootstrap
    - make -j4 check VERBOSE=1

ubuntu-lts-18-gcc-x86_64:
  stage: build
  image: ubuntu:18.04
  except:
    - tags
  variables:
    DEBIAN_FRONTEND: noninteractive
  before_script:
    - apt update
    - apt install -y automake autoconf-archive libtool bison dbus flex git libglib2.0-dev libgraphviz-dev libgirepository1.0-dev lcov xsltproc make valac
  script:
    - git fetch --tags
    - ./autogen.sh
    - make -j4
    - make -j4 bootstrap
    - make -j4 check VERBOSE=1
  allow_failure: true

archlinux-gcc-x86_64:
  stage: build
  image: archlinux:latest
  before_script:
    - pacman -Syu --noconfirm automake autoconf-archive libtool bison gettext dbus flex git glib2 graphviz gobject-introspection gcc make vala
  script:
    - git fetch --tags
    - ./autogen.sh
    - make -j4
    - make -j4 bootstrap
    - make -j4 check VERBOSE=1
  allow_failure: true

alpinelinux-gcc-x86_64:
  stage: build
  image: alpine:edge
  before_script:
    - apk -U upgrade
    - apk add automake autoconf-archive libtool bash bison gettext dbus-x11 flex git glib-dev graphviz-dev gobject-introspection-dev build-base libxslt-dev make vala
  script:
    - git fetch --tags
    - ./autogen.sh
    - make -j4
    - make -j4 bootstrap
    - make -j4 check VERBOSE=1
  allow_failure: true

pages:
  stage: deploy
  only:
    - master
  script:
    - mkdir public
    - mv coverage public/.
    - mv doc/internal-apis public/docs
    - mv doc/manual/html public/manual
    - mv doc/manual/manual.pdf public/manual.pdf
    - echo "<html><body><h1>Vala</h1><ul><li><a href="manual/index.html">Manual</a> [<a href="manual.pdf">pdf</a>]</li><li><a href="docs/index.html">Documentation</a></li><li><a href="coverage/index.html">Coverage</a></li></ul></body></html>" > public/index.html
  artifacts:
    name: "vala-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
    paths:
      - public
    expire_in: 2 days