run-nightly-tests #293
This file contains hidden or 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: 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 |