btrfs-progs: ci: remove gitlab CI scripts

The gitlab CI was experimentally used for btrfs-progs testsuite in
nested VM with recent kernel (as the base CI image was too old). This
unfortunately did not work due to time limit for the CI run, the build
and tests haven't finished.

Gitlab supports self-hosted runners so this can be integrated
eventually.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2023-04-13 22:17:35 +02:00
parent 0005022d3d
commit 4efcbf1781
7 changed files with 0 additions and 295 deletions

View File

@ -1,157 +0,0 @@
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License v2 as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 021110-1307, USA.
#
image: docker:18.09.7
services:
- docker:18.09.7-dind
# To enable or disable Kernel Build set BUILD_KERNEL: "1" or BUILD_KERNEL: "0"
# If you disable Kernel Build, make sure PREBUILT_KERNEL_ID points to previously built the kernel job id.
# To enable or disable image build update BUILD_IMAGE value to "1" or "0".
# If you disable Image Build, make sure PREBUILT_IMAGE_ID points to previously built rootfs job id.
variables:
DOCKER_DRIVER: overlay2
IMAGE_TAG: registry.gitlab.com/$CI_PROJECT_NAMESPACE/btrfs-progs:gitlab-ci
BUILD_KERNEL: "1"
PREBUILT_KERNEL_ID: "320566224"
BUILD_IMAGE: "1"
PREBUILT_IMAGE_ID: "288506168"
stages:
- build
- btrfs-progs build
- test
before_script:
- docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY
docker build:
stage: build
script:
- cd ci/gitlab
- docker pull $IMAGE_TAG > /dev/null && echo "Downloaded image" || ( docker build -t $IMAGE_TAG . && docker push $IMAGE_TAG )
kernel build:
before_script:
- apk add curl unzip
stage: build
script:
- if [ "$BUILD_KERNEL" == "1" ]; then
docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/kernel_build.sh;
else
curl -o bzImage.zip --location --header "JOB-TOKEN:$CI_JOB_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/jobs/$PREBUILT_KERNEL_ID/artifacts" && unzip bzImage.zip;
fi;
artifacts:
when: always
paths:
- bzImage
image build:
before_script:
- apk add curl unzip
stage: build
script:
- if [ "$BUILD_IMAGE" == "1" ]; then
docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/setup_image.sh;
else
curl -o qemu-image.img.zip --location --header "JOB-TOKEN:$CI_JOB_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/jobs/$PREBUILT_IMAGE_ID/artifacts" && unzip qemu-image.img.zip;
fi;
artifacts:
when: always
paths:
- qemu-image.img
btrfs-progs build:
stage: btrfs-progs build
script:
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
artifacts:
expire_in: 1 week
when: always
paths:
- qemu-image.img
cli tests:
stage: test
script:
- echo "./cli-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1 # If result doesn't exists, job failed.
artifacts:
when: always
paths:
- "*tests-results.txt"
convert tests:
only:
- devel
stage: test
script:
- echo "./convert-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1
artifacts:
when: always
paths:
- "*tests-results.txt"
fsck tests:
stage: test
script:
- echo "./fsck-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1
artifacts:
when: always
paths:
- "*tests-results.txt"
- error.log
fuzz tests:
stage: test
script:
- echo "./fuzz-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1
artifacts:
when: always
paths:
- "*tests-results.txt"
misc tests:
stage: test
script:
- echo "./misc-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1
artifacts:
when: always
paths:
- "*tests-results.txt"
mkfs tests:
stage: test
script:
- echo "./mkfs-tests.sh" > $PWD/cmd
- docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh
- test -e "result" || exit 1
artifacts:
when: always
paths:
- "*tests-results.txt"

View File

@ -1,3 +0,0 @@
FROM debian:stretch-slim
RUN apt-get update && apt-get install -y --no-install-recommends ovmf qemu-system qemu-efi

View File

@ -1,13 +0,0 @@
[Unit]
Description=Execute build_or_run_btrfs-progs.sh on console
[Service]
ExecStart=/usr/bin/build_or_run_btrfs-progs.sh
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/ttyS0
Type=idle
[Install]
WantedBy=getty.target
After=multi-user.target

View File

@ -1,37 +0,0 @@
#!/bin/bash
#
# Build or Run btrfs-progs tests.
set -x
BTRFS_BIN="btrfs"
MNT_DIR="/mnt/"
BUILD_DIR="/btrfs/"
test_cmd=$(cat ${MNT_DIR}/cmd)
rm -f ${MNT_DIR}/result
${BTRFS_BIN} --version
if [ $? -ne 0 ]
then
echo "=========================== Builb btrfs-progs ================"
echo " Image doesn't have ${BTRFS_BIN} - start build process"
cd ${MNT_DIR} && ./autogen.sh && ./configure --disable-documentation --disable-backtrace && make -j`nproc` && make install && make testsuite
echo "================= Prepare Testsuite =========================="
mkdir -p ${BUILD_DIR}
cp tests/btrfs-progs-tests.tar.gz ${BUILD_DIR}
poweroff
else
echo "================= Run Tests ================================="
cd ${BUILD_DIR} && tar -xvf btrfs-progs-tests.tar.gz && ${test_cmd}
# check test result status
if [ $? -ne 0 ]; then
cd ${BUILD_DIR} && cp *tests-results.txt ${MNT_DIR}
poweroff
else
cd ${BUILD_DIR} && cp *tests-results.txt ${MNT_DIR}
touch ${MNT_DIR}/result
poweroff
fi
fi

View File

@ -1,31 +0,0 @@
#!/usr/bin/env bash
#
# Setup BTRFS kernel options and build kernel
set -x
apt-get update
apt-get -y install build-essential libncurses-dev bison flex libssl-dev libelf-dev unzip wget bc
# Build kernel
wget https://github.com/kdave/btrfs-devel/archive/misc-next.zip
unzip -qq misc-next.zip
cd btrfs-devel-misc-next/ && make x86_64_defconfig && make kvmconfig
# BTRFS specific entries
cat <<EOF >> .config
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_BTRFS_FS_CHECK_INTEGRITY=n
CONFIG_BTRFS_FS_RUN_SANITY_TESTS=n
CONFIG_BTRFS_DEBUG=y
CONFIG_BTRFS_ASSERT=y
CONFIG_BTRFS_FS_REF_VERIFY=y
CONFIG_RAID6_PQ_BENCHMARK=y
CONFIG_LIBCRC32C=y
EOF
make -j8
# Store file to shared dir
cp -v arch/x86/boot/bzImage /repo

View File

@ -1,12 +0,0 @@
#!/usr/bin/env bash
#
# Install and start qemu instance with custom kernel while exporting
# btrfs-progs src over 9p
#
set -x
qemu-system-x86_64 -m 512 -nographic -kernel /repo/bzImage \
-drive file=/repo/qemu-image.img,index=0,media=disk,format=raw \
-fsdev local,id=btrfs-progs,path=/repo,security_model=mapped \
-device virtio-9p-pci,fsdev=btrfs-progs,mount_tag=btrfs-progs \
-append "console=tty1 root=/dev/sda rw"

View File

@ -1,42 +0,0 @@
#!/usr/bin/env bash
#
# Setup debian image via debootstrap and include systemd service file.
set -x
apt-get update
apt-get -y install debootstrap wget unzip
# Setup rootfs
IMG="/qemu-image.img"
DIR="/target"
truncate -s2G $IMG
mkfs.ext4 $IMG
mkdir -p $DIR
for i in {0..7};do
mknod -m 0660 "/dev/loop$i" b 7 "$i"
done
# mount the image file
mount -o loop $IMG $DIR
# Install required packages
debootstrap --arch=amd64 --include=git,autoconf,automake,gcc,make,pkg-config,e2fslibs-dev,libblkid-dev,zlib1g-dev,liblzo2-dev,asciidoc,xmlto,libzstd-dev,python3.5,python3.5-dev,python3-dev,python3-setuptools,python-setuptools,xz-utils,acl,attr stretch $DIR http://ftp.de.debian.org/debian/
## Setup 9p mount
echo "btrfs-progs /mnt 9p trans=virtio 0 0" > $DIR/etc/fstab
# Setup autologin
sed -i 's/9600/9600 --autologin root/g' $DIR/lib/systemd/system/serial-getty@.service
# Setup systemd service
cp -v /repo/ci/gitlab/build_or_run_btrfs-progs.sh $DIR/usr/bin/
cp -v /repo/ci/gitlab/btrfs-progs-tests.service $DIR/etc/systemd/system/
## Enable service
ln -s $DIR/etc/systemd/system/btrfs-progs-tests.service $DIR/etc/systemd/system/getty.target.wants/btrfs-progs-tests.service
cd /
umount $DIR
rmdir $DIR
cp -v $IMG /repo