1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-28 17:47:29 +03:00
samba-mirror/.gitlab-ci.yml
Joe Guo 6b4ae52f22 .gitlab-ci.yml: merge .gitlab-ci-private.yml
`.gitlab-ci.yml` support conditional jobs with `only` and `except`.
And variables can be read from repo CI/CD settings as condition:

    build_samba:
      script: ...
      only:
        variables:
          - $SUPPORT_PRIVATE_TEST == 'yes'

Instead of having 2 copies of yml file, we can use this feature to
trigger private jobs only when a var like `SUPPORT_PRIVATE_TEST` is defined.

I've already added above var to our repos.
Once merged, we can remove custom CI config file in
gitlab repo settings, and remove .gitlab-ci-private.yml file from code.

Signed-off-by: Joe Guo <joeg@catalyst.net.nz>
Reviewed-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Feb 18 10:54:19 CET 2019 on sn-devel-144
2019-02-18 10:54:19 +01:00

136 lines
3.7 KiB
YAML

# 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