summaryrefslogtreecommitdiff
path: root/ci/build_project.yml
blob: e5c716a079bf46df645851cd4968a712f7994b1a (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
image: xfce/xfce-build:latest

# Set overall pipeline rules to avoid duplicated pipelines
# https://docs.gitlab.com/ee/ci/yaml/index.html#exclude-jobs-with-rules-from-certain-pipelines
workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_MERGE_REQUEST_IID

stages:
  - build
  - distcheck
  - release

translations:
  extends: .translation
  stage: build
  script:
    #  Could validate translations, but for now just pass
    - "true"

build:
  extends: .make
  stage: build
  script:
    - make

distcheck:
  extends: .distcheck
  stage: distcheck
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - when: always

release:
  extends: .distcheck
  stage: release
  artifacts:
    paths:
      - ./*.tar.bz2
    expire_in: never
  rules:
    - if: $CI_COMMIT_TAG

.make:
  before_script:
    - env "CFLAGS=-Wall -Wno-deprecated-declarations -Werror=implicit-function-declaration -Werror=return-type" ./autogen.sh
  rules:
    # If there are changes to .po, never run. We also check
    # BEFORE_SHA to see if it is zeros, in which case we are
    # running on a manual trigger or scheduled pipeline. In
    # that case, changes resolves to true so we need to check
    # both.
    - if: '$CI_COMMIT_BEFORE_SHA != "0000000000000000000000000000000000000000"'
      changes:
      - "po/*.po"
      when: never
    # Otherwise, always run
    - when: always

.distcheck:
  extends: .make
  script:
    - make distcheck

.translation:
  rules:
    # If there are changes to .po, run this job
    - changes:
      - "po/*.po"
      when: always
    # Otherwise, never run
    - when: never