mirror of
https://github.com/samba-team/samba.git
synced 2025-01-28 17:47:29 +03:00
6b4ae52f22
`.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
136 lines
3.7 KiB
YAML
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
|