MTR Tests #66
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
#TODO: make sure to run on 1TB zns drives -> look at disk-select option | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 22 * * fri' | |
name: MTR Tests | |
jobs: | |
mtr-tests: | |
runs-on: nvme-zns | |
timeout-minutes: 1440 | |
steps: | |
- name: Clean | |
run: rm -rf ${GITHUB_WORKSPACE}/* | |
- name: Prepare zoned block devices | |
run: | | |
for i in $(seq 0 3) | |
do | |
DEV="ZBD$i" | |
if [ ! -b "/dev/${!DEV}" ] | |
then | |
echo "/dev/${!DEV} is not available for zenfs-mtr!" | |
exit 1 | |
fi | |
echo deadline > /sys/block/${!DEV}/queue/scheduler | |
done | |
- name: Checkout zenfs | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: zenfs | |
- name: Create build directory | |
run: | | |
mkdir -p percona-build-dir | |
- name: Create result directory | |
run: | | |
mkdir -p percona-results | |
- name: Build docker image | |
run: | | |
podman build --jobs=$(nproc) --cgroup-manager cgroupfs \ | |
-t percona-debian \ | |
-f zenfs/.github/workflows/containerfiles/Dockerfile.percona-debian-build \ | |
--build-arg PERCONA_SERVER_BASE=Percona-Server-8.0.34-26 \ | |
--build-arg ZENFS_BRANCH=${GITHUB_SHA} \ | |
--build-arg ZENFS_REPO=https://github.com/${GITHUB_REPOSITORY}.git \ | |
. | |
- name: Run MTR RocksDB test | |
id: mtrTest1 | |
run: | | |
podman run --rm -i --device /dev/$ZBD0 \ | |
--volume ${GITHUB_WORKSPACE}/zenfs/.github/workflows/mtr:/scripts \ | |
--workdir /scripts \ | |
--env DEVICE0="$ZBD0" \ | |
percona-debian \ | |
bash wrapper.sh bash mtr-rocksdb-test.sh | |
continue-on-error: true | |
- name: Run MTR RocksDB replication test | |
id: mtrTest2 | |
run: | | |
podman run --rm -i --device /dev/$ZBD0 \ | |
--device /dev/$ZBD1 \ | |
--volume ${GITHUB_WORKSPACE}/zenfs/.github/workflows/mtr:/scripts \ | |
--workdir /scripts \ | |
--env DEVICE0="$ZBD0" \ | |
--env DEVICE1="$ZBD1" \ | |
percona-debian \ | |
bash wrapper.sh bash mtr-rocksdb-replication-test.sh | |
continue-on-error: true | |
- name: Run MTR RocksDB parallel test | |
id: mtrTest3 | |
run: | | |
podman run --rm -i --device /dev/$ZBD0 \ | |
--device /dev/$ZBD1 \ | |
--device /dev/$ZBD2 \ | |
--device /dev/$ZBD3 \ | |
--volume ${GITHUB_WORKSPACE}/zenfs/.github/workflows/mtr:/scripts \ | |
--workdir /scripts \ | |
--env DEVICE0="$ZBD0" \ | |
--env DEVICE1="$ZBD1" \ | |
--env DEVICE2="$ZBD2" \ | |
--env DEVICE3="$ZBD3" \ | |
percona-debian \ | |
bash wrapper.sh bash mtr-rocksdb-parallel-test.sh | |
continue-on-error: true | |
- name: Run MTR RocksDB parallel replication test | |
id: mtrTest4 | |
run: | | |
podman run --rm -i --device /dev/$ZBD0 \ | |
--device /dev/$ZBD1 \ | |
--device /dev/$ZBD2 \ | |
--device /dev/$ZBD3 \ | |
--volume ${GITHUB_WORKSPACE}/zenfs/.github/workflows/mtr:/scripts \ | |
--workdir /scripts \ | |
--env DEVICE0="$ZBD0" \ | |
--env DEVICE1="$ZBD1" \ | |
--env DEVICE2="$ZBD2" \ | |
--env DEVICE3="$ZBD3" \ | |
percona-debian \ | |
bash wrapper.sh bash mtr-rocksdb-parallel-replication-test.sh | |
continue-on-error: true | |
- name: Remove images | |
run: podman image prune --force | |
if: always() | |
- name: Failure check | |
if: steps.mtrTest1.outcome != 'success' || steps.mtrTest2.outcome != 'success' || steps.mtrTest3.outcome != 'success' || steps.mtrTest4.outcome != 'success' | |
run: exit 1 |