Skip to content

run-nightly-tests

run-nightly-tests #293

---
name: run-nightly-tests
on:
workflow_dispatch:
schedule:
- cron: '0 01 * * *'
jobs:
nightly-tests:
if: github.repository == 'linux-nvme/nvme-cli'
runs-on: arc-vm-nvme-cli
steps:
- uses: actions/checkout@v4
with:
repository: "linux-blktests/blktests-ci"
#We don't have to build the kernel here, as we have a cron job running on
#the k8s cluster that builds the linus-master target nightly.
- name: Run in VM
uses: ./.github/actions/kubevirt-action
with:
kernel_version: linus-master
vm_artifact_upload_dir: nvme-cli/tests/nvmetests/
run_cmds: |
#Preventing bash variable expension for the outer cat by using
#single quotes around EOF
cat > test.sh << 'EOF'
#!/bin/bash
set -e
set -x
uname -a
PIPX_BIN_DIR=/usr/local/bin pipx install nose2 --force
git clone https://github.com/${{ github.repository }} /nvme-cli
cd /nvme-cli
scripts/build.sh -b release -c gcc
CONTROLLER=$(echo "${BDEV0}" | sed 's/n[0-9]*$//')
cat > tests/config.json << EOJ
{
"controller" : "${CONTROLLER}",
"ns1": "${BDEV0}",
"log_dir": "tests/nvmetests/",
"nvme_bin": "/nvme-cli/.build-ci/nvme"
}
EOJ
cat tests/config.json
nose2 --verbose --start-dir tests \
nvme_attach_detach_ns_test \
nvme_compare_test \
nvme_copy_test \
nvme_create_max_ns_test \
nvme_ctrl_reset_test \
nvme_dsm_test \
nvme_error_log_test \
nvme_flush_test \
nvme_format_test \
nvme_fw_log_test \
nvme_get_features_test \
nvme_get_lba_status_test \
nvme_id_ctrl_test \
nvme_id_ns_test \
nvme_lba_status_log_test \
nvme_read_write_test \
nvme_smart_log_test \
nvme_verify_test \
nvme_writeuncor_test \
nvme_writezeros_test
EOF
sudo chmod +x test.sh
#Create shared volume mount point for artifact upload
mkdir nvme-cli
#Expose all devices to the container through the `privileged` flag.
#
#BDEV0 is an environment variable of the self-hosted runner instance
#that contains a valid nvme namespace which is capable of the nvm
#command set.
sudo docker run --privileged \
-v "/dev":"/dev":z \
-e BDEV0 \
-v "${PWD}/test.sh":"/test.sh" \
-v "${PWD}/nvme-cli":"/nvme-cli":z \
ghcr.io/linux-nvme/debian.python:latest /test.sh