mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
d048d7e17d
Samba has not built on these versions for quite some time due to the need for Python 3.5 and GnuTLS 3.4.7 These were always marked as broken, but given the requirements these are never likely to come back. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
328 lines
9.7 KiB
YAML
328 lines
9.7 KiB
YAML
# see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options
|
|
|
|
stages:
|
|
- images
|
|
- build
|
|
- report
|
|
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
GIT_DEPTH: "3"
|
|
# "--enable-coverage" or ""
|
|
SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE: ""
|
|
#
|
|
# we run autobuild.py inside a samba CI docker image located on gitlab's registry
|
|
# overwrite this variable if you want use your own image registry.
|
|
#
|
|
# Or better ask for access to the shared development repository, see
|
|
# https://wiki.samba.org/index.php/Samba_CI_on_gitlab#Getting_Access
|
|
#
|
|
SAMBA_CI_CONTAINER_REGISTRY: registry.gitlab.com/samba-team/devel/samba
|
|
#
|
|
# Set this to the contents of bootstrap/sha1sum.txt
|
|
# which is generated by bootstrap/template.py --render
|
|
#
|
|
SAMBA_CI_CONTAINER_TAG: cd4cebb9c611fb98f3a21171dd4832df930add28
|
|
#
|
|
# We use the ubuntu1804 image as default as
|
|
# it matches what we have on sn-devel-184.
|
|
#
|
|
SAMBA_CI_CONTAINER_IMAGE: ubuntu1804
|
|
#
|
|
# The following images are available
|
|
# Please see the samba-o3 sections at the end of this file!
|
|
# We should run that for each available image
|
|
#
|
|
SAMBA_CI_CONTAINER_IMAGE_ubuntu1804: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-ubuntu1804:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_ubuntu1604: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-ubuntu1604:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_debian9: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-debian9:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_debian10: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-debian10:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_opensuse150: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-opensuse150:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_opensuse151: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-opensuse151:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_fedora29: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora29:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_fedora30: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora30:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_fedora31: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora31:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_centos7: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-centos7:${SAMBA_CI_CONTAINER_TAG}
|
|
SAMBA_CI_CONTAINER_IMAGE_centos8: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-centos8:${SAMBA_CI_CONTAINER_TAG}
|
|
|
|
include:
|
|
# The image creation details are specified in a separate file
|
|
# See bootstrap/README.md for details
|
|
- 'bootstrap/.gitlab-ci.yml'
|
|
|
|
.shared_template:
|
|
variables:
|
|
AUTOBUILD_JOB_NAME: $CI_JOB_NAME
|
|
image: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-${SAMBA_CI_CONTAINER_IMAGE}:${SAMBA_CI_CONTAINER_TAG}
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
- shared
|
|
before_script:
|
|
- uname -a
|
|
- lsb_release -a
|
|
- cat /etc/os-release
|
|
- mount
|
|
- df -h
|
|
- cat /proc/swaps
|
|
- free -h
|
|
# ld will fail if coverage enabled, force link ld to ld.bfd
|
|
- if [ -n "$SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE" ]; then sudo ln -sf $(which ld.bfd) $(which ld); fi
|
|
# See bootstrap/.gitlab-ci.yml how to generate a new image
|
|
- echo "SAMBA_CI_CONTAINER_REGISTRY[${SAMBA_CI_CONTAINER_REGISTRY}]"
|
|
- echo "SAMBA_CI_CONTAINER_TAG[${SAMBA_CI_CONTAINER_TAG}]"
|
|
- bootstrap/template.py --sha1sum > /tmp/sha1sum-template.txt
|
|
- diff -u bootstrap/sha1sum.txt /tmp/sha1sum-template.txt
|
|
- echo "${SAMBA_CI_CONTAINER_TAG}" > /tmp/sha1sum-tag.txt
|
|
- diff -u bootstrap/sha1sum.txt /tmp/sha1sum-tag.txt
|
|
- diff -u bootstrap/sha1sum.txt /sha1sum.txt
|
|
after_script:
|
|
- mount
|
|
- df -h
|
|
- cat /proc/swaps
|
|
- free -h
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- "*.stdout"
|
|
- "*.stderr"
|
|
- "*.info"
|
|
- system-info.txt
|
|
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 $AUTOBUILD_JOB_NAME $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase"
|
|
- script/autobuild.py $AUTOBUILD_JOB_NAME $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
|
|
# Ensure when adding a new job below that you also add it to
|
|
# the dependencies for 'pages' below for the code coverage page
|
|
# generation.
|
|
|
|
others:
|
|
extends: .shared_template
|
|
script:
|
|
- script/autobuild.py ldb $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
- script/autobuild.py pidl $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
- script/autobuild.py replace $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
- script/autobuild.py talloc $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
- script/autobuild.py tdb $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
- script/autobuild.py tevent $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase
|
|
|
|
samba:
|
|
extends: .shared_template
|
|
|
|
samba-mitkrb5:
|
|
extends: .shared_template
|
|
|
|
samba-none-env:
|
|
extends: .shared_template
|
|
|
|
samba-nopython:
|
|
extends: .shared_template
|
|
|
|
samba-nopython-py2:
|
|
extends: .shared_template
|
|
|
|
samba-xc:
|
|
extends: .shared_template
|
|
|
|
samba-admem:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-2:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-3:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-4:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-5:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-6:
|
|
extends: .shared_template
|
|
|
|
samba-libs:
|
|
extends: .shared_template
|
|
|
|
samba-static:
|
|
extends: .shared_template
|
|
|
|
samba-fuzz:
|
|
extends: .shared_template
|
|
|
|
ctdb:
|
|
extends: .shared_template
|
|
|
|
samba-ctdb:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-ntvfs:
|
|
extends: .shared_template
|
|
|
|
samba-admem-mit:
|
|
extends: .shared_template
|
|
|
|
samba-ad-dc-4-mitkrb5:
|
|
extends: .shared_template
|
|
|
|
.private_template:
|
|
extends: .shared_template
|
|
tags:
|
|
- docker
|
|
- samba-ci-private
|
|
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-ad-dc-backup:
|
|
extends: .private_template
|
|
|
|
samba-simpleserver:
|
|
extends: .private_template
|
|
|
|
samba-fileserver:
|
|
extends: .private_template
|
|
|
|
samba-ktest-heimdal:
|
|
extends: .private_template
|
|
|
|
samba-ad-dc-1:
|
|
extends: .private_template
|
|
|
|
samba-nt4:
|
|
extends: .private_template
|
|
|
|
samba-schemaupgrade:
|
|
extends: .private_template
|
|
|
|
samba-ad-dc-1-mitkrb5:
|
|
extends: .private_template
|
|
|
|
# 'pages' is a special job which can publish artifacts in `public` dir to gitlab pages
|
|
pages:
|
|
image: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-${SAMBA_CI_CONTAINER_IMAGE}:${SAMBA_CI_CONTAINER_TAG}
|
|
stage: report
|
|
tags:
|
|
- docker
|
|
- shared
|
|
dependencies: # tell gitlab to download artifacts for these jobs
|
|
- others
|
|
- samba
|
|
- samba-mitkrb5
|
|
- samba-none-env
|
|
- samba-nopython
|
|
- samba-nopython-py2
|
|
- samba-xc
|
|
- samba-admem
|
|
- samba-ad-dc-2
|
|
- samba-ad-dc-3
|
|
- samba-ad-dc-4
|
|
- samba-ad-dc-5
|
|
- samba-ad-dc-6
|
|
- samba-libs
|
|
- samba-static
|
|
- samba-fuzz
|
|
# - ctdb # TODO
|
|
- samba-ctdb
|
|
- samba-ad-dc-ntvfs
|
|
- samba-admem-mit
|
|
- samba-ad-dc-4-mitkrb5
|
|
- samba-ad-dc-backup
|
|
- samba-simpleserver
|
|
- samba-fileserver
|
|
- samba-ktest-heimdal
|
|
- samba-ad-dc-1
|
|
- samba-nt4
|
|
- samba-schemaupgrade
|
|
- samba-ad-dc-1-mitkrb5
|
|
script:
|
|
- ./configure.developer
|
|
- make -j
|
|
- lcov $(ls *.info | xargs -I{} echo -n "-a {} ") -o all.info
|
|
- genhtml all.info --output-directory public --prefix=$(pwd) --title "coverage report for $CI_COMMIT_REF_NAME $CI_COMMIT_SHORT_SHA"
|
|
artifacts:
|
|
expire_in: 30 days
|
|
paths:
|
|
- public
|
|
only:
|
|
variables:
|
|
- $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE == "--enable-coverage"
|
|
|
|
#
|
|
# We build samba-o3 on all supported distributions
|
|
#
|
|
|
|
.samba-o3-template:
|
|
extends: .shared_template
|
|
variables:
|
|
AUTOBUILD_JOB_NAME: samba-o3
|
|
only:
|
|
variables:
|
|
# do not run o3 for coverage since they are using different images
|
|
- $SAMBA_CI_AUTOBUILD_ENABLE_COVERAGE == ""
|
|
|
|
ubuntu1804-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_ubuntu1804
|
|
|
|
ubuntu1604-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_ubuntu1604
|
|
|
|
debian9-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_debian9
|
|
|
|
debian10-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_debian10
|
|
|
|
opensuse150-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_opensuse150
|
|
|
|
opensuse151-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_opensuse151
|
|
|
|
centos7-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_centos7
|
|
variables:
|
|
# Git on CentOS doesn't support shallow git cloning
|
|
GIT_DEPTH: ""
|
|
# We need a newer GnuTLS version on CentOS7
|
|
PKG_CONFIG_PATH: "/usr/lib64/compat-gnutls34/pkgconfig:/usr/lib64/compat-nettle32/pkgconfig"
|
|
|
|
centos8-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_centos8
|
|
|
|
fedora29-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_fedora29
|
|
|
|
fedora30-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_fedora30
|
|
|
|
fedora31-samba-o3:
|
|
extends: .samba-o3-template
|
|
image: $SAMBA_CI_CONTAINER_IMAGE_fedora31
|
|
|
|
#
|
|
# Keep the samba-o3 sections at the end ...
|
|
#
|