summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 32a10181bfa5898940f086eef35a2e6cde5e2c03 (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
127
128
129
130
131
132
133
134
135
# see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options


variables:
  # we run autobuild.py inside a samba CI docker image located on gitlab's registry
  SAMBA_CI_CONTAINER_REGISTRY: registry.gitlab.com
  SAMBA_CI_CONTAINER_NAME: samba-team/samba
  SAMBA_CI_CONTAINER_TAG: latest
  SAMBA_CI_CONTAINER_IMAGE: $SAMBA_CI_CONTAINER_REGISTRY/$SAMBA_CI_CONTAINER_NAME:$SAMBA_CI_CONTAINER_TAG
  GIT_STRATEGY: fetch
  GIT_DEPTH: "3"

.shared_template:
  image: $SAMBA_CI_CONTAINER_IMAGE
  stage: build
  tags:
    - docker
    - shared
  before_script:
    - uname -a
    - lsb_release -a
    - echo "Build starting (preparing swap)..."
    - if [ $(df -m / --output=avail | tail -n1) -gt 10240 ]; then
        sudo dd if=/dev/zero of=/samba-swap bs=1M count=6144;
        sudo mkswap /samba-swap;
        sudo swapon /samba-swap;
      fi
    - mount
    - df -h
    - free -h
  artifacts:
    expire_in: 1 week
    when: on_failure
    paths:
      - "*.stdout"
      - "*.stderr"
      - system-info.txt
      - /tmp/samba-testbase/*/*/bin/config.log
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure
  script:
    # gitlab predefines CI_JOB_NAME for each job. The gitlab job usually matches the
    # autobuild name, which means we can define a default template that runs most autobuild jobs
    - echo "Running cmd script/autobuild.py $CI_JOB_NAME --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase"
    - script/autobuild.py $CI_JOB_NAME    --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase

others:
  extends: .shared_template
  script:
    - script/autobuild.py ldb              --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
    - script/autobuild.py pidl             --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
    - script/autobuild.py replace          --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
    - script/autobuild.py talloc           --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
    - script/autobuild.py tdb              --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
    - script/autobuild.py tevent           --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase

samba-none-env:
  extends: .shared_template
  # this one takes about 1 hours to finish

samba-nopython:
  extends: .shared_template

samba-nopython-py2:
  extends: .shared_template

samba-systemkrb5:
  extends: .shared_template

samba-xc:
  extends: .shared_template

samba-o3:
  extends: .shared_template

samba-ad-dc-2:
  extends: .shared_template
  # this one takes about 1 hours to finish

samba-ad-dc-backup:
  extends: .shared_template

samba-libs:
  extends: .shared_template

samba-static:
  extends: .shared_template

ctdb:
  extends: .shared_template

samba-ctdb:
  extends: .shared_template

samba-ad-dc-ntvfs:
  extends: .shared_template
  # this one takes about 100 mins to finish


.private_template:
  extends: .shared_template
  tags:
    - docker
    - private
  before_script:
    - uname -a
    - lsb_release -a
    - mount
    - df -h
    - free -h
  only:
    variables:
      # These jobs are only run if the gitlab repo has private runners available.
      # To enable private jobs, you must add the following var and value to
      # your gitlab repo by navigating to:
      # settings -> CI/CD -> Environment variables
      - $SUPPORT_PRIVATE_TEST == "yes"

samba:
  extends: .private_template
  # this one takes about 4 hours to finish

samba-fileserver:
  extends: .private_template
  # this one takes about 1 hours to finish

samba-ad-dc:
  extends: .private_template
  # this one takes about 1 hours to finish

samba-nt4:
  extends: .private_template