Test for /etc/fstab mount #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: stratisd CI on ubuntu | |
# yamllint disable-line rule:truthy | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'CHANGES.txt' | |
- '**/README.md' | |
- 'README_tests.md' | |
- 'tests/**' | |
- '.packit.yaml' | |
- 'plans/**' | |
- 'tests-fmf/**' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- 'CHANGES.txt' | |
- '**/README.md' | |
- 'README_tests.md' | |
- 'tests/**' | |
- '.packit.yaml' | |
- 'plans/**' | |
- 'tests-fmf/**' | |
workflow_dispatch: | |
# cancel the in-progress workflow when PR is refreshed. | |
# yamllint disable rule:line-length | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
checks: | |
strategy: | |
matrix: | |
include: | |
- task: make -f Makefile clippy | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: clippy | |
- task: PROFILEDIR=debug make -f Makefile build | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: PROFILEDIR=debug make -f Makefile build-min | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: PROFILEDIR=debug make -f Makefile build-min-no-systemd | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: PROFILEDIR=debug make -f Makefile build-utils | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: PROFILEDIR=debug make -f Makefile build-no-ipc | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: PROFILEDIR=debug make -f Makefile stratisd-tools | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: make -f Makefile docs-ci | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: make -f Makefile test | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: make -f Makefile build | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: make -f Makefile build-min | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
- task: make -f Makefile build-no-ipc | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
runs-on: ubuntu-22.04 | |
container: | |
image: ubuntu:jammy | |
options: --privileged -v /dev:/dev | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies for Ubuntu | |
run: apt-get -q update | |
- name: Install dependencies for Ubuntu | |
run: > | |
DEBIAN_FRONTEND=noninteractive | |
apt-get install -y | |
clang | |
curl | |
libblkid-dev | |
libcryptsetup-dev | |
libdbus-1-dev | |
libdevmapper-dev | |
libsystemd-dev | |
libudev-dev | |
make | |
sudo | |
thin-provisioning-tools | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
components: ${{ matrix.components }} | |
toolchain: ${{ matrix.toolchain }} | |
- name: Test ${{ matrix.task }} on ${{ matrix.toolchain }} toolchain | |
run: ${{ matrix.task }} | |
# TESTS WITH UDEV | |
checks_with_udev: | |
strategy: | |
matrix: | |
include: | |
- task: RUST_LOG=stratisd=debug make -f Makefile test-loop | |
toolchain: 1.77.0 # CURRENT DEVELOPMENT RUST TOOLCHAIN | |
components: cargo | |
runs-on: ubuntu-22.04 | |
container: | |
image: ubuntu:jammy | |
options: --privileged -v /dev:/dev -v /run/udev:/run/udev -v /usr/lib/udev:/usr/lib/udev --ipc=host | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies for Ubuntu | |
run: apt-get -q update | |
- name: Install dependencies for Ubuntu | |
run: > | |
DEBIAN_FRONTEND=noninteractive | |
apt-get install -y | |
asciidoc | |
clang | |
curl | |
libblkid-dev | |
libcryptsetup-dev | |
libdbus-1-dev | |
libdevmapper-dev | |
libsystemd-dev | |
libudev-dev | |
make | |
sudo | |
systemd | |
thin-provisioning-tools | |
udev | |
xfsprogs | |
- 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: PROFILEDIR=debug make -f Makefile install | |
- name: Reload udev | |
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 | |
sudo | |
systemd | |
thin-provisioning-tools | |
udev | |
xfsprogs | |
- 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 loopback device | |
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 pool | |
- 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 |