summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: c11c9b5c00c4ac0ebff234f899a868718949672e (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
# 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-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-buildpy2-only:
  extends: .shared_template

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