mirror of
https://github.com/samba-team/samba.git
synced 2025-01-06 13:18:07 +03:00
95676825ad
For now we allow build warnings and only do some basic testing. We also ignore timestamp related problems, as well as some charset failures. Over time we should try to address the situation by not allowing warnings and verify if expected failures are harmless or not. But it's already much better then having no 32bit testing at all! Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Thu Nov 24 12:05:26 UTC 2022 on sn-devel-184
124 lines
4.9 KiB
YAML
124 lines
4.9 KiB
YAML
---
|
|
.build_image_template:
|
|
image: quay.io/podman/stable:latest
|
|
stage: images
|
|
tags:
|
|
# We need to make sure we only use gitlab.com
|
|
# runners and not our own runners, as our current runners
|
|
# don't allow 'docker build ...' to run.
|
|
- docker
|
|
- gce
|
|
- shared
|
|
variables:
|
|
SAMBA_CI_IS_BROKEN_IMAGE: "no"
|
|
SAMBA_CI_TEST_JOB: "samba-o3"
|
|
before_script:
|
|
# install prerequisites
|
|
- dnf install -qy diffutils
|
|
# Ensure we are generating correct the container
|
|
- uname -a
|
|
- cat /etc/os-release
|
|
- echo "SAMBA_CI_CONTAINER_REGISTRY[${SAMBA_CI_CONTAINER_REGISTRY}]"
|
|
- echo "SAMBA_CI_CONTAINER_TAG[${SAMBA_CI_CONTAINER_TAG}]"
|
|
- echo "SAMBA_CI_IS_BROKEN_IMAGE[${SAMBA_CI_IS_BROKEN_IMAGE}]"
|
|
- echo "SAMBA_CI_REBUILD_IMAGES[${SAMBA_CI_REBUILD_IMAGES}]"
|
|
- echo "SAMBA_CI_REBUILD_BROKEN_IMAGES[${SAMBA_CI_REBUILD_BROKEN_IMAGES}]"
|
|
- echo "GITLAB_USER_LOGIN[${GITLAB_USER_LOGIN}]"
|
|
- echo "${SAMBA_CI_CONTAINER_TAG}" > /tmp/sha1sum-tag.txt
|
|
- diff -u bootstrap/sha1sum.txt /tmp/sha1sum-tag.txt
|
|
script: |
|
|
set -xueo pipefail
|
|
ci_image_name=samba-ci-${CI_JOB_NAME}
|
|
podman build -t ${ci_image_name} --build-arg SHA1SUM=${SAMBA_CI_CONTAINER_TAG} bootstrap/generated-dists/${CI_JOB_NAME}
|
|
ci_image_path="${SAMBA_CI_CONTAINER_REGISTRY}/${ci_image_name}"
|
|
timestamp=$(date +%Y%m%d%H%M%S)
|
|
container_hash=$(podman image inspect --format='{{ .Id }}' ${ci_image_name} | cut -c 1-9)
|
|
timestamp_tag=${SAMBA_CI_CONTAINER_TAG}-${timestamp}-${GITLAB_USER_LOGIN}-${container_hash}
|
|
samba_repo_root=/home/samba/samba
|
|
# Ensure we are generating the correct container that we expect to be in
|
|
echo "${SAMBA_CI_CONTAINER_TAG}" > /tmp/sha1sum-tag.txt
|
|
diff -u bootstrap/sha1sum.txt /tmp/sha1sum-tag.txt
|
|
podman run --volume $(pwd):${samba_repo_root} --workdir ${samba_repo_root} ${ci_image_name} \
|
|
/bin/bash -c "echo \"${SAMBA_CI_CONTAINER_TAG}\" > /tmp/sha1sum-tag.txt; diff -u bootstrap/sha1sum.txt /tmp/sha1sum-tag.txt"
|
|
podman run --volume $(pwd):${samba_repo_root} --workdir ${samba_repo_root} ${ci_image_name} \
|
|
diff -u bootstrap/sha1sum.txt /sha1sum.txt
|
|
podman run --volume $(pwd):${samba_repo_root} --workdir ${samba_repo_root} ${ci_image_name} \
|
|
bootstrap/template.py --sha1sum > /tmp/sha1sum-template.txt
|
|
diff -u bootstrap/sha1sum.txt /tmp/sha1sum-template.txt
|
|
# run smoke test with samba-o3 or samba-fuzz
|
|
podman run --volume $(pwd):/src:ro ${ci_image_name} \
|
|
/bin/bash -c "git clone /src samba && cd samba && export PKG_CONFIG_PATH=/usr/lib64/compat-gnutls34/pkgconfig:/usr/lib64/compat-nettle32/pkgconfig && script/autobuild.py ${SAMBA_CI_TEST_JOB} --verbose --nocleanup --keeplogs --tail --testbase /tmp/samba-testbase"
|
|
podman tag ${ci_image_name} ${ci_image_path}:${SAMBA_CI_CONTAINER_TAG}
|
|
podman tag ${ci_image_name} ${ci_image_path}:${timestamp_tag}
|
|
# We build all images, but only upload is it's not marked as broken
|
|
test x"${SAMBA_CI_IS_BROKEN_IMAGE}" = x"yes" || { \
|
|
podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY; \
|
|
podman push ${ci_image_path}:${SAMBA_CI_CONTAINER_TAG}; \
|
|
podman push ${ci_image_path}:${timestamp_tag}; \
|
|
}
|
|
echo "Success for ${ci_image_path}:${timestamp_tag}"
|
|
test x"${SAMBA_CI_IS_BROKEN_IMAGE}" = x"no" || { \
|
|
echo "The image ${CI_JOB_NAME} is marked as broken and should have failed!"; \
|
|
echo "Replace .build_image_template_force_broken with .build_image_template!"; \
|
|
echo "Add a .samba-o3-template section at the end of the main .gitlab-ci.yml!"; \
|
|
/bin/false; \
|
|
}
|
|
only:
|
|
variables:
|
|
#
|
|
# You need a custom pipeline which passes
|
|
# SAMBA_CI_REBUILD_IMAGES="yes".
|
|
#
|
|
# https://gitlab.com/samba-team/devel/samba/pipelines/new
|
|
#
|
|
- $SAMBA_CI_REBUILD_IMAGES == "yes"
|
|
|
|
.build_image_template_force_broken:
|
|
extends: .build_image_template
|
|
variables:
|
|
SAMBA_CI_IS_BROKEN_IMAGE: "yes"
|
|
only:
|
|
variables:
|
|
#
|
|
# You need a custom pipeline which passes
|
|
# SAMBA_CI_REBUILD_BROKEN_IMAGES="yes"
|
|
# in order to build broken images for debugging
|
|
#
|
|
# https://gitlab.com/samba-team/devel/samba/pipelines/new
|
|
#
|
|
- $SAMBA_CI_REBUILD_BROKEN_IMAGES == "yes"
|
|
|
|
ubuntu1804:
|
|
extends: .build_image_template
|
|
|
|
ubuntu1804-32bit:
|
|
extends: .build_image_template
|
|
variables:
|
|
SAMBA_CI_TEST_JOB: "samba-32bit"
|
|
|
|
ubuntu2004:
|
|
extends: .build_image_template
|
|
|
|
debian11:
|
|
extends: .build_image_template
|
|
|
|
fedora37:
|
|
extends: .build_image_template
|
|
|
|
f37mit120:
|
|
extends: .build_image_template
|
|
|
|
centos8s:
|
|
extends: .build_image_template
|
|
|
|
centos7:
|
|
extends: .build_image_template
|
|
variables:
|
|
# Shallow copies are not supported by git on CentOS7
|
|
GIT_DEPTH: ""
|
|
# We install a compat-gnutls34 package for GnuTLS >= 3.4.7
|
|
PKG_CONFIG_PATH: /usr/lib64/compat-gnutls34/pkgconfig:/usr/lib64/compat-nettle32/pkgconfig
|
|
|
|
opensuse154:
|
|
extends: .build_image_template
|