mirror of
https://github.com/containers/fuse-overlayfs.git
synced 2025-09-09 07:16:11 -04:00
Merge pull request #267 from giuseppe/github-actions-ci
tests: move to github actions instead of travis
This commit is contained in:
commit
bccc81eb8e
100
.github/workflows/test.yaml
vendored
Normal file
100
.github/workflows/test.yaml
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
name: Test
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build_job:
|
||||
runs-on: ubuntu-20.04
|
||||
name: Build on ${{ matrix.arch }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- arch: armv7
|
||||
distro: ubuntu20.04
|
||||
- arch: aarch64
|
||||
distro: ubuntu20.04
|
||||
- arch: s390x
|
||||
distro: ubuntu20.04
|
||||
- arch: ppc64le
|
||||
distro: ubuntu20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2.1.0
|
||||
- uses: uraimo/run-on-arch-action@v2.0.5
|
||||
name: Build
|
||||
id: build
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
distro: ${{ matrix.distro }}
|
||||
|
||||
githubToken: ${{ github.token }}
|
||||
|
||||
setup: |
|
||||
git submodule update --init --recursive
|
||||
|
||||
install: |
|
||||
apt-get update -q -y
|
||||
apt-get install -q -y attr automake autotools-dev git make gcc pkg-config xz-utils python3.8 g++ python3-setuptools libdevmapper-dev btrfs-progs libbtrfs-dev go-md2man parallel libfuse3-dev bats
|
||||
|
||||
run: |
|
||||
./autogen.sh
|
||||
./configure
|
||||
make -j $(nproc)
|
||||
|
||||
Test:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- test: no-ovl-whiteouts
|
||||
- test: ovl-whiteouts
|
||||
env:
|
||||
GOPATH: /root/go
|
||||
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: install dependencies
|
||||
run: |
|
||||
sudo apt-get update -q -y
|
||||
sudo apt-get install -q -y attr automake autotools-dev git make gcc pkg-config xz-utils python3.8 g++ python3-setuptools libdevmapper-dev btrfs-progs libbtrfs-dev go-md2man parallel wget libfuse3-dev bats
|
||||
|
||||
sudo mkdir -p /lower /upper /mnt
|
||||
sudo sh -c "(cd /; git clone https://github.com/amir73il/unionmount-testsuite.git)"
|
||||
sudo go get github.com/containers/storage
|
||||
sudo GOPATH=$GOPATH sh -c "(cd /root/go/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS := exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make GO111MODULE=on containers-storage)"
|
||||
|
||||
- name: run autogen.sh
|
||||
run: |
|
||||
./autogen.sh
|
||||
|
||||
- name: run configure
|
||||
run: |
|
||||
./configure
|
||||
|
||||
- name: build and install
|
||||
run: |
|
||||
make -j $(nproc)
|
||||
sudo make -j install
|
||||
sudo cp fuse-overlayfs /sbin
|
||||
|
||||
- name: run test
|
||||
run: |
|
||||
case "${{ matrix.test }}" in
|
||||
ovl-whiteouts)
|
||||
sudo sh -c "(cd /unionmount-testsuite; unshare -m ./run --ov --fuse=fuse-overlayfs --xdev)"
|
||||
sudo tests/fedora-installs.sh
|
||||
sudo tests/unlink.sh
|
||||
sudo tests/alpine.sh
|
||||
sudo sh -c "(cd /root/go/src/github.com/containers/storage/tests; JOBS=1 STORAGE_OPTION=overlay.mount_program=/sbin/fuse-overlayfs STORAGE_DRIVER=overlay unshare -m ./test_runner.bash)"
|
||||
;;
|
||||
no-ovl-whiteouts)
|
||||
sudo sh -c "(cd /unionmount-testsuite; FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 unshare -m ./run --ov --fuse=fuse-overlayfs --xdev)"
|
||||
sudo FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 tests/fedora-installs.sh
|
||||
sudo FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 tests/unlink.sh
|
||||
sudo FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 tests/alpine.sh
|
||||
sudo sh -c "(cd /root/go/src/github.com/containers/storage/tests; JOBS=1 FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 STORAGE_OPTION=overlay.mount_program=/sbin/fuse-overlayfs STORAGE_DRIVER=overlay unshare -m ./test_runner.bash)"
|
||||
;;
|
||||
esac
|
49
.travis.yml
49
.travis.yml
@ -1,49 +0,0 @@
|
||||
services:
|
||||
- docker
|
||||
env:
|
||||
- GOPATH=$HOME/go GOROOT=/usr/local/go GO=/usr/local/go/bin/go PATH=/usr/local/go/bin:$PATH
|
||||
language: c
|
||||
sudo: required
|
||||
dist: focal
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- attr
|
||||
- automake
|
||||
- autotools-dev
|
||||
- git
|
||||
- make
|
||||
- gcc
|
||||
- pkg-config
|
||||
- wget
|
||||
- xz-utils
|
||||
- python3.8
|
||||
- g++
|
||||
- python3-setuptools
|
||||
- libdevmapper-dev
|
||||
- btrfs-progs
|
||||
- libbtrfs-dev
|
||||
- go-md2man
|
||||
- parallel
|
||||
before_install:
|
||||
- docker pull fedora &
|
||||
- (wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz && tar xf go1.13.7.linux-amd64.tar.gz && sudo mv go /usr/local)
|
||||
- sudo mkdir -p /lower /upper /mnt
|
||||
- (cd /; sudo git clone https://github.com/amir73il/unionmount-testsuite.git)
|
||||
- (git clone --depth 1 git://github.com/ninja-build/ninja.git && cd ninja && python3.8 configure.py --bootstrap && sudo cp ninja /usr/bin)
|
||||
- (git clone --depth 1 -b 0.51.1 https://github.com/mesonbuild/meson.git; cd meson; sudo python3.8 ./setup.py install)
|
||||
- (git clone --depth 1 https://github.com/bats-core/bats-core; cd bats-core; sudo ./install.sh /usr/local)
|
||||
- ($GO get github.com/containers/storage; cd $GOPATH/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS := exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make GO=$GO GO111MODULE=on containers-storage)
|
||||
- (wget https://github.com/libfuse/libfuse/releases/download/fuse-3.9.1/fuse-3.9.1.tar.xz; tar xf fuse-3.9.1.tar.xz; cd fuse-3.9.1; mkdir build; cd build; meson .. --prefix /usr && ninja && sudo ninja install)
|
||||
script:
|
||||
- ./autogen.sh || travis_terminate 1;
|
||||
- ./configure || travis_terminate 1;
|
||||
- make -j $(nproc) || travis_terminate 1;
|
||||
- sudo make -j install; sudo cp fuse-overlayfs /sbin || travis_terminate 1;
|
||||
- (cd /unionmount-testsuite; sudo unshare -m ./run --ov --fuse=fuse-overlayfs --xdev) || travis_terminate 1;
|
||||
- (cd /unionmount-testsuite; sudo FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 unshare -m ./run --ov --fuse=fuse-overlayfs --xdev) || travis_terminate 1;
|
||||
- sudo tests/fedora-installs.sh || travis_terminate 1;
|
||||
- sudo tests/unlink.sh || travis_terminate 1;
|
||||
- sudo tests/alpine.sh || travis_terminate 1;
|
||||
- (cd $GOPATH/src/github.com/containers/storage/tests; sudo JOBS=1 STORAGE_OPTION=overlay.mount_program=/sbin/fuse-overlayfs STORAGE_DRIVER=overlay unshare -m ./test_runner.bash) || travis_terminate 1;
|
||||
- (cd $GOPATH/src/github.com/containers/storage/tests; sudo JOBS=1 FUSE_OVERLAYFS_DISABLE_OVL_WHITEOUT=1 STORAGE_OPTION=overlay.mount_program=/sbin/fuse-overlayfs STORAGE_DRIVER=overlay unshare -m ./test_runner.bash) || travis_terminate 1;
|
@ -6,7 +6,7 @@ mkdir lower upper workdir merged
|
||||
|
||||
fuse-overlayfs -o sync=0,lowerdir=lower,upperdir=upper,workdir=workdir,suid,dev merged
|
||||
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged fedora dnf --installroot /merged --releasever 30 install -y glibc-common gedit
|
||||
docker run --rm -v $(pwd)/merged:/merged fedora dnf --installroot /merged --releasever 30 install -y glibc-common gedit
|
||||
|
||||
umount merged
|
||||
|
||||
@ -30,14 +30,14 @@ stat -c %A upper/suid | grep s
|
||||
stat -c %a upper/nosuid | grep -v s
|
||||
|
||||
# Install some big packages
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged fedora dnf --installroot /merged --releasever 30 install -y emacs texlive
|
||||
docker run --rm -v $(pwd)/merged:/merged fedora dnf --installroot /merged --releasever 30 install -y emacs texlive
|
||||
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged fedora sh -c 'rm /merged/usr/share/glib-2.0/schemas/gschemas.compiled; glib-compile-schemas /merged/usr/share/glib-2.0/schemas/'
|
||||
docker run --rm -v $(pwd)/merged:/merged fedora sh -c 'rm /merged/usr/share/glib-2.0/schemas/gschemas.compiled; glib-compile-schemas /merged/usr/share/glib-2.0/schemas/'
|
||||
|
||||
umount merged
|
||||
fuse-overlayfs -o sync=0,lowerdir=lower,upperdir=upper,workdir=workdir,suid,dev merged
|
||||
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged fedora sh -c 'rm -rf /merged/usr/share/glib-2.0/'
|
||||
docker run --rm -v $(pwd)/merged:/merged fedora sh -c 'rm -rf /merged/usr/share/glib-2.0/'
|
||||
|
||||
tar -c --to-stdout $(pwd)/merged > /dev/null
|
||||
|
||||
@ -48,14 +48,14 @@ mkdir upper workdir lower
|
||||
fuse-overlayfs -o sync=0,lowerdir=lower,upperdir=upper,workdir=workdir,suid,dev merged
|
||||
|
||||
# https://github.com/containers/fuse-overlayfs/issues/86
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged centos:6 yum --installroot /merged -y --releasever 6 install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
|
||||
docker run --rm -v $(pwd)/merged:/merged centos:8 yum --installroot /merged -y --releasever 8 install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
|
||||
umount merged
|
||||
|
||||
# fast_ino_check
|
||||
fuse-overlayfs -o fast_ino_check=1,sync=0,lowerdir=lower,upperdir=upper,workdir=workdir,suid,dev merged
|
||||
|
||||
docker run --rm -ti -v $(pwd)/merged:/merged centos:6 yum --installroot /merged -y --releasever 6 install nano
|
||||
docker run --rm -v $(pwd)/merged:/merged centos:8 yum --installroot /merged -y --releasever 8 install nano
|
||||
|
||||
mkdir merged/a-directory
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user