gparted/.gitlab-ci.yml

127 lines
4.2 KiB
YAML

stages:
- build
- test
.alpine_image_template: &alpine_image_definition
# Use official Alpine image https://hub.docker.com/_/alpine/.
image: alpine:3.17
before_script:
- cat /proc/version
- cat /etc/os-release
- apk update
- apk add gnome-common yelp-tools automake autoconf glib-dev libtool g++
parted-dev gtkmm3-dev itstool make git polkit-dev
# Extra packages only needed during the test stage.
- apk add btrfs-progs btrfs-progs-extra e2fsprogs e2fsprogs-extra exfatprogs
dosfstools mtools f2fs-tools jfsutils cryptsetup lvm2 udftools
xfsprogs xfsprogs-extra xvfb-run kmod gzip eudev
.rocky_image_template: &rocky_image_definition
# Use official Rocky Linux image https://hub.docker.com/_/rockylinux/.
image: rockylinux:8
before_script:
- cat /proc/version
- cat /etc/os-release
- dnf update -y
# Enable PowerTools repo for development packages.
- dnf install -y 'dnf-command(config-manager)'
- dnf config-manager --set-enabled powertools
- dnf install -y which gnome-common yelp-tools glib2-devel gcc-c++
libuuid-devel parted-devel gtkmm30-devel make polkit file
polkit-devel gettext-devel
# Extra packages only needed during the test stage.
# Install EPEL repo first for exfatprogs and ntfsprogs.
- dnf install -y epel-release
- dnf install -y e2fsprogs dosfstools exfatprogs mtools util-linux
cryptsetup device-mapper lvm2 ntfsprogs udftools xfsprogs
xfsdump xorg-x11-server-Xvfb kmod
.ubuntu_image_template: &ubuntu_image_definition
# Use official Ubuntu image https://hub.docker.com/_/ubuntu/.
image: ubuntu:latest
before_script:
- cat /proc/version
- cat /etc/os-release
- export DEBIAN_FRONTEND=noninteractive
- apt update
- apt install -y build-essential gnome-common yelp-tools libglib2.0-dev-bin
uuid-dev libparted-dev libgtkmm-3.0-dev policykit-1
libpolkit-gobject-1-dev
# Extra packages only needed during the test stage.
- apt install -y btrfs-progs e2fsprogs exfatprogs f2fs-tools dosfstools
mtools hfsutils hfsprogs jfsutils util-linux cryptsetup-bin
dmsetup lvm2 nilfs-tools ntfs-3g reiser4progs reiserfsprogs
udftools xfsprogs xfsdump xvfb kmod
.build_stage_template: &build_stage_definition
stage: build
script:
- ./autogen.sh
- nproc=`grep -c '^processor' /proc/cpuinfo` || nproc=1
- echo nproc=$nproc
- make -j $nproc
- make install
# Save all files on job failure for investigation.
artifacts:
when: on_failure
name: "$CI_PROJECT_NAME-ci-job-$CI_JOB_ID-$CI_JOB_NAME"
untracked: true
paths:
- ./
expire_in: 1 week
.test_stage_template: &test_stage_definition
stage: test
script:
- ./autogen.sh
- nproc=`grep -c '^processor' /proc/cpuinfo` || nproc=1
- echo nproc=$nproc
- make -j $nproc
# Exclude specific unit tests which fail without being able to create
# loop devices in Docker images.
- export GTEST_FILTER=`tests/exclude_loopdev_tests.sh tests/test_SupportedFileSystems.cc`
- echo $GTEST_FILTER
- fgrep -v nodev /proc/filesystems | sort
- cat /proc/partitions
- ls -l /dev
# Create needed /dev entries for unit tests in Docker images.
- tests/makedev.sh
- make check
- make distcheck
- fgrep -v nodev /proc/filesystems | sort
# Save all files on job failure for investigation.
artifacts:
when: on_failure
name: "$CI_PROJECT_NAME-ci-job-$CI_JOB_ID-$CI_JOB_NAME"
untracked: true
paths:
- ./
expire_in: 1 week
# Check GParted can be built and installed on Alpine Linux, CentOS and Ubuntu.
alpine_build:
<<: *alpine_image_definition
<<: *build_stage_definition
rocky_build:
<<: *rocky_image_definition
<<: *build_stage_definition
ubuntu_build:
<<: *ubuntu_image_definition
<<: *build_stage_definition
# Check GParted unit tests and distcheck pass on Alpine Linux, CentOS and
# Ubuntu.
alpine_test:
<<: *alpine_image_definition
<<: *test_stage_definition
rocky_test:
<<: *rocky_image_definition
<<: *test_stage_definition
ubuntu_test:
<<: *ubuntu_image_definition
<<: *test_stage_definition