From 53f598afeaa220ee8e55c9fb9cd31ca9258f6754 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 21 Dec 2020 17:04:07 +0100 Subject: [PATCH 1/4] tests: drop -ti Signed-off-by: Giuseppe Scrivano --- tests/fedora-installs.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/fedora-installs.sh b/tests/fedora-installs.sh index 392b2f4..88b4a30 100755 --- a/tests/fedora-installs.sh +++ b/tests/fedora-installs.sh @@ -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:6 yum --installroot /merged -y --releasever 6 install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.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:6 yum --installroot /merged -y --releasever 6 install nano mkdir merged/a-directory From abf77369b373c18c4553b7f52198ac209f71aea6 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 21 Dec 2020 17:16:52 +0100 Subject: [PATCH 2/4] tests: upgrade to centos:8 Signed-off-by: Giuseppe Scrivano --- tests/fedora-installs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/fedora-installs.sh b/tests/fedora-installs.sh index 88b4a30..d42985a 100755 --- a/tests/fedora-installs.sh +++ b/tests/fedora-installs.sh @@ -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 -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 -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 From 43a1faf889c1d6d79df965c0af05c960bf155295 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 21 Dec 2020 10:15:23 +0100 Subject: [PATCH 3/4] .travis.yml: remove file Signed-off-by: Giuseppe Scrivano --- .travis.yml | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 75f679b..0000000 --- a/.travis.yml +++ /dev/null @@ -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; From fa1dc2cf53f5bef24276d2906ae3ecb179ff652e Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 21 Dec 2020 10:15:36 +0100 Subject: [PATCH 4/4] test: use github actions for CI Signed-off-by: Giuseppe Scrivano --- .github/workflows/test.yaml | 100 ++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..d2bbc0e --- /dev/null +++ b/.github/workflows/test.yaml @@ -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