1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-13 16:23:50 +03:00

gitlab-ci: Add CentOS 8 to CI

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>

Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Tue Oct  8 08:27:50 UTC 2019 on sn-devel-184
This commit is contained in:
Andreas Schneider
2019-10-07 11:28:24 +02:00
committed by Andreas Schneider
parent 9cd0d15370
commit c9d302f20b
9 changed files with 335 additions and 2 deletions

View File

@@ -22,7 +22,7 @@ variables:
# Set this to the contents of bootstrap/sha1sum.txt # Set this to the contents of bootstrap/sha1sum.txt
# which is generated by bootstrap/template.py --render # which is generated by bootstrap/template.py --render
# #
SAMBA_CI_CONTAINER_TAG: b2e8ad4e8057ddc87386ef5ac7cd8599f04d7a57 SAMBA_CI_CONTAINER_TAG: 4a498d9dd6c861b85bf4a749f3feb0805ea7298e
# #
# We use the ubuntu1804 image as default as # We use the ubuntu1804 image as default as
# it matches what we have on sn-devel-184. # it matches what we have on sn-devel-184.
@@ -41,6 +41,7 @@ variables:
SAMBA_CI_CONTAINER_IMAGE_fedora29: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora29:${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_fedora30: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-fedora30:${SAMBA_CI_CONTAINER_TAG}
SAMBA_CI_CONTAINER_IMAGE_centos7: ${SAMBA_CI_CONTAINER_REGISTRY}/samba-ci-centos7:${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: include:
# The image creation details are specified in a separate file # The image creation details are specified in a separate file
@@ -271,6 +272,10 @@ centos7-samba-o3:
# We need a newer GnuTLS version on CentOS7 # We need a newer GnuTLS version on CentOS7
PKG_CONFIG_PATH: "/usr/lib64/compat-gnutls34/pkgconfig:/usr/lib64/compat-nettle32/pkgconfig" 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: fedora29-samba-o3:
extends: .samba-o3-template extends: .samba-o3-template
image: $SAMBA_CI_CONTAINER_IMAGE_fedora29 image: $SAMBA_CI_CONTAINER_IMAGE_fedora29

View File

@@ -110,6 +110,9 @@ fedora29:
fedora28: fedora28:
extends: .build_image_template_force_broken extends: .build_image_template_force_broken
centos8:
extends: .build_image_template
centos7: centos7:
extends: .build_image_template extends: .build_image_template
variables: variables:

View File

@@ -218,6 +218,23 @@ if [ ! -f /usr/bin/python3 ]; then
fi fi
""" """
CENTOS8_YUM_BOOTSTRAP = r"""
#!/bin/bash
{GENERATED_MARKER}
set -xueo pipefail
yum update -y
yum install -y dnf-plugins-core
yum install -y epel-release
yum config-manager --set-enabled PowerTools -y
yum update -y
yum install -y \
--setopt=install_weak_deps=False \
{pkgs}
yum clean all
"""
DNF_BOOTSTRAP = r""" DNF_BOOTSTRAP = r"""
#!/bin/bash #!/bin/bash
@@ -473,6 +490,22 @@ RPM_DISTS = {
'gnutls-devel': 'compat-gnutls34-devel', 'gnutls-devel': 'compat-gnutls34-devel',
} }
}, },
'centos8': {
'docker_image': 'centos:8',
'vagrant_box': 'centos/8',
'bootstrap': CENTOS8_YUM_BOOTSTRAP,
'replace': {
'lsb-release': 'redhat-lsb',
'@development-tools': '"@Development Tools"', # add quotes
'libsemanage-python': 'python3-libsemanage',
'lcov': '', # does not exist
'perl-JSON-Parse': '', # does not exist?
'perl-Test-Base': 'perl-Test-Simple',
'policycoreutils-python': 'python3-policycoreutils',
'python3-crypto': '',
'quota-devel': '', # FIXME: Add me back, once available!
}
},
'fedora28': { 'fedora28': {
'docker_image': 'fedora:28', 'docker_image': 'fedora:28',
'vagrant_box': 'fedora/28-cloud-base', 'vagrant_box': 'fedora/28-cloud-base',

View File

@@ -24,6 +24,13 @@ Vagrant.configure("2") do |config|
v.vm.provision :shell, path: "centos7/locale.sh" v.vm.provision :shell, path: "centos7/locale.sh"
end end
config.vm.define "centos8" do |v|
v.vm.box = "centos/8"
v.vm.hostname = "centos8"
v.vm.provision :shell, path: "centos8/bootstrap.sh"
v.vm.provision :shell, path: "centos8/locale.sh"
end
config.vm.define "debian7" do |v| config.vm.define "debian7" do |v|
v.vm.box = "debian/wheezy64" v.vm.box = "debian/wheezy64"
v.vm.hostname = "debian7" v.vm.hostname = "debian7"

View File

@@ -0,0 +1,27 @@
#
# This file is generated by 'bootstrap/template.py --render'
# See also bootstrap/config.py
#
FROM centos:8
# pass in with --build-arg while build
ARG SHA1SUM
RUN [ -n $SHA1SUM ] && echo $SHA1SUM > /sha1sum.txt
ADD *.sh /tmp/
# need root permission, do it before USER samba
RUN /tmp/bootstrap.sh && /tmp/locale.sh
# if ld.gold exists, force link it to ld
RUN set -x; LD=$(which ld); LD_GOLD=$(which ld.gold); test -x $LD_GOLD && ln -sf $LD_GOLD $LD && test -x $LD && echo "$LD is now $LD_GOLD"
# make test can not work with root, so we have to create a new user
RUN useradd -m -U -s /bin/bash samba && \
mkdir -p /etc/sudoers.d && \
echo "samba ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/samba
USER samba
WORKDIR /home/samba
# samba tests rely on this
ENV USER=samba LC_ALL=en_US.utf8 LANG=en_US.utf8

View File

@@ -0,0 +1,110 @@
#!/bin/bash
#
# This file is generated by 'bootstrap/template.py --render'
# See also bootstrap/config.py
#
set -xueo pipefail
yum update -y
yum install -y dnf-plugins-core
yum install -y epel-release
yum config-manager --set-enabled PowerTools -y
yum update -y
yum install -y \
--setopt=install_weak_deps=False \
"@Development Tools" \
acl \
attr \
autoconf \
avahi-devel \
bind-utils \
binutils \
bison \
cups-devel \
curl \
dbus-devel \
docbook-dtds \
docbook-style-xsl \
flex \
gawk \
gcc \
gdb \
git \
glib2-devel \
glibc-common \
glibc-langpack-en \
glusterfs-api-devel \
glusterfs-devel \
gnutls-devel \
gpgme-devel \
gzip \
hostname \
htop \
jansson-devel \
keyutils-libs-devel \
krb5-devel \
krb5-server \
libacl-devel \
libaio-devel \
libarchive-devel \
libattr-devel \
libblkid-devel \
libbsd-devel \
libcap-devel \
libcephfs-devel \
libicu-devel \
libnsl2-devel \
libpcap-devel \
libtasn1-devel \
libtasn1-tools \
libtirpc-devel \
libunwind-devel \
libuuid-devel \
libxslt \
lmdb \
lmdb-devel \
make \
mingw64-gcc \
ncurses-devel \
nettle-devel \
openldap-devel \
pam-devel \
patch \
perl \
perl-Archive-Tar \
perl-ExtUtils-MakeMaker \
perl-Parse-Yapp \
perl-Test-Simple \
perl-generators \
perl-interpreter \
pkgconfig \
popt-devel \
procps-ng \
psmisc \
python3 \
python3-devel \
python3-dns \
python3-gpg \
python3-libsemanage \
python3-markdown \
python3-policycoreutils \
readline-devel \
redhat-lsb \
rng-tools \
rpcgen \
rpcsvc-proto-devel \
rsync \
sed \
sudo \
systemd-devel \
tar \
tree \
which \
xfsprogs-devel \
yum-utils \
zlib-devel
yum clean all

View File

@@ -0,0 +1,55 @@
#!/bin/bash
#
# This file is generated by 'bootstrap/template.py --render'
# See also bootstrap/config.py
#
set -xueo pipefail
# refer to /usr/share/i18n/locales
INPUTFILE=en_US
# refer to /usr/share/i18n/charmaps
CHARMAP=UTF-8
# locale to generate in /usr/lib/locale
# glibc/localedef will normalize UTF-8 to utf8, follow the naming style
LOCALE=$INPUTFILE.utf8
# if locale is already correct, exit
( locale | grep LC_ALL | grep -i $LOCALE ) && exit 0
# if locale not available, generate locale into /usr/lib/locale
if ! ( locale --all-locales | grep -i $LOCALE )
then
# no-archive means create its own dir
localedef --inputfile $INPUTFILE --charmap $CHARMAP --no-archive $LOCALE
fi
# update locale conf and global env file
# set both LC_ALL and LANG for safe
# update conf for Debian family
FILE=/etc/default/locale
if [ -f $FILE ]
then
echo LC_ALL="$LOCALE" > $FILE
echo LANG="$LOCALE" >> $FILE
fi
# update conf for RedHat family
FILE=/etc/locale.conf
if [ -f $FILE ]
then
# LC_ALL is not valid in this file, set LANG only
echo LANG="$LOCALE" > $FILE
fi
# update global env file
FILE=/etc/environment
if [ -f $FILE ]
then
# append LC_ALL if not exist
grep LC_ALL $FILE || echo LC_ALL="$LOCALE" >> $FILE
# append LANG if not exist
grep LANG $FILE || echo LANG="$LOCALE" >> $FILE
fi

View File

@@ -0,0 +1,93 @@
---
packages:
- "@Development Tools"
- acl
- attr
- autoconf
- avahi-devel
- bind-utils
- binutils
- bison
- cups-devel
- curl
- dbus-devel
- docbook-dtds
- docbook-style-xsl
- flex
- gawk
- gcc
- gdb
- git
- glib2-devel
- glibc-common
- glibc-langpack-en
- glusterfs-api-devel
- glusterfs-devel
- gnutls-devel
- gpgme-devel
- gzip
- hostname
- htop
- jansson-devel
- keyutils-libs-devel
- krb5-devel
- krb5-server
- libacl-devel
- libaio-devel
- libarchive-devel
- libattr-devel
- libblkid-devel
- libbsd-devel
- libcap-devel
- libcephfs-devel
- libicu-devel
- libnsl2-devel
- libpcap-devel
- libtasn1-devel
- libtasn1-tools
- libtirpc-devel
- libunwind-devel
- libuuid-devel
- libxslt
- lmdb
- lmdb-devel
- make
- mingw64-gcc
- ncurses-devel
- nettle-devel
- openldap-devel
- pam-devel
- patch
- perl
- perl-Archive-Tar
- perl-ExtUtils-MakeMaker
- perl-Parse-Yapp
- perl-Test-Simple
- perl-generators
- perl-interpreter
- pkgconfig
- popt-devel
- procps-ng
- psmisc
- python3
- python3-devel
- python3-dns
- python3-gpg
- python3-libsemanage
- python3-markdown
- python3-policycoreutils
- readline-devel
- redhat-lsb
- rng-tools
- rpcgen
- rpcsvc-proto-devel
- rsync
- sed
- sudo
- systemd-devel
- tar
- tree
- which
- xfsprogs-devel
- yum-utils
- zlib-devel

View File

@@ -1 +1 @@
b2e8ad4e8057ddc87386ef5ac7cd8599f04d7a57 4a498d9dd6c861b85bf4a749f3feb0805ea7298e