diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index a4900282707..491d618f948 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -152,3 +152,65 @@ jobs: run: udevadm control --reload - name: Test ${{ matrix.task }} on ${{ matrix.toolchain }} toolchain run: ${{ matrix.task }} + + # /etc/fstab tests + fstab-checks: + strategy: + matrix: + include: + - toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN + components: cargo + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies for Ubuntu + run: > + sudo DEBIAN_FRONTEND=noninteractive + apt-get install -y + asciidoc + clang + curl + libblkid-dev + libcryptsetup-dev + libdbus-1-dev + libdevmapper-dev + libsystemd-dev + libudev-dev + make + python3-pip + sudo + systemd + thin-provisioning-tools + udev + xfsprogs + - name: Install stratis-cli + run: | + git clone https://github.com/stratis-storage/stratis-cli + pip install ./stratis-cli + - uses: dtolnay/rust-toolchain@master + with: + components: ${{ matrix.components }} + toolchain: ${{ matrix.toolchain }} + - name: Build stratisd + run: PROFILEDIR=debug make -f Makefile build-all + - name: Install stratisd + run: sudo PROFILEDIR=debug make -f Makefile install + - name: Reload udev + run: sudo udevadm control --reload + - name: Start stratisd + run: sudo systemctl start stratisd + - name: Create loopback device backing file + run: truncate -s 5g img.bin + - name: Create Stratis pool + run: | + sudo losetup -f img.bin + LOOPBACK=$(losetup -j $HOME/img.bin | awk '{ print $1 }' | sed -e "s/://") + sudo stratis pool create testpool $LOOPBACK + - name: Create Stratis filesystem + run: sudo stratis fs create testpool testfs + - name: Edit /etc/fstab + run: | + POOL_UUID=$(stratis pool list --name testpool | grep UUID | awk '{ print $2 }') + echo "/dev/stratis/testpool/testfs /mnt xfs defaults,x-systemd.requires=stratis-fstab-setup@$POOL_UUID.service,x-systemd.after=stratis-fstab-setup@$POOL_UUID.service 0 0" | sudo tee -a /etc/fstab + - name: Mount filesystem + run: sudo mount /dev/stratis/testpool/testfs