150 lines
6.3 KiB
YAML
150 lines
6.3 KiB
YAML
stages:
|
|
- build
|
|
- test
|
|
|
|
.alpine_image_template: &alpine_image_definition
|
|
# Use official Alpine image https://hub.docker.com/_/alpine/.
|
|
image: alpine:latest
|
|
before_script:
|
|
- cat /proc/version
|
|
- cat /etc/os-release
|
|
- apk update
|
|
- apk add gnome-common yelp-tools automake autoconf glib-dev intltool
|
|
libtool g++ parted-dev gtkmm3-dev itstool make
|
|
# 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
|
|
|
|
.centos_image_template: ¢os_image_definition
|
|
# Use official CentOS image https://hub.docker.com/_/centos/.
|
|
image: centos:centos7
|
|
before_script:
|
|
- cat /proc/version
|
|
- cat /etc/os-release
|
|
- yum update -y
|
|
- yum install -y which gnome-common yelp-tools glib2-devel intltool
|
|
gcc-c++ libuuid-devel parted-devel gtkmm30-devel make
|
|
polkit file
|
|
# Extra packages only needed during the test stage.
|
|
# Install EPEL repo first for f2fs-tools and ntfsprogs.
|
|
- yum install -y epel-release
|
|
- yum install -y btrfs-progs e2fsprogs exfatprogs f2fs-tools dosfstools
|
|
mtools hfsplus-tools util-linux cryptsetup device-mapper
|
|
lvm2 ntfsprogs udftools xfsprogs xfsdump
|
|
xorg-x11-server-Xvfb kmod
|
|
- systemd-machine-id-setup
|
|
|
|
.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-get update
|
|
- apt-get install -y build-essential gnome-common yelp-tools
|
|
libglib2.0-dev-bin uuid-dev libparted-dev
|
|
libgtkmm-3.0-dev policykit-1
|
|
# Extra packages only needed during the test stage.
|
|
- apt-get 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="-My/SupportedFileSystemsTest.Create/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUsage/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUsage/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUsage/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadLabel/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadLabel/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadLabel/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUUID/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUUID/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndReadUUID/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteLabel/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteLabel/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUID/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUID/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndWriteUUIDAndReadLabel/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndCheck/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndRemove/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/jfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/nilfs2"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndGrow/xfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndShrink/btrfs"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndShrink/lvm2pv"
|
|
- GTEST_FILTER="$GTEST_FILTER:My/SupportedFileSystemsTest.CreateAndShrink/nilfs2"
|
|
- fgrep -v nodev /proc/filesystems | sort
|
|
# 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
|
|
|
|
centos_build:
|
|
<<: *centos_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
|
|
|
|
centos_test:
|
|
<<: *centos_image_definition
|
|
<<: *test_stage_definition
|
|
|
|
ubuntu_test:
|
|
<<: *ubuntu_image_definition
|
|
<<: *test_stage_definition
|