Run nightly tests #227
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: | |
| request-kernel-version: | |
| if: github.repository == 'linux-nvme/nvme-cli' | |
| runs-on: ubuntu-latest | |
| steps: | |
| #We don't have to build the kernel here, as we have a cron job running on | |
| #the k8s cluster that builds this target nightly. | |
| - name: Request nightly Linus' master tree kernel build for the next job | |
| run: | | |
| echo "KERNEL_VERSION=linus-master" >> $GITHUB_ENV | |
| - name: Notifying the next job to pick up the correct kernel tag | |
| run: | | |
| echo "${KERNEL_VERSION}" | |
| nightly-tests: | |
| if: github.repository == 'linux-nvme/nvme-cli' | |
| runs-on: arc-vm-runner-set | |
| needs: request-kernel-version | |
| container: | |
| image: ghcr.io/linux-nvme/debian.python:latest | |
| #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. | |
| options: '--privileged -v "/dev":"/dev":z -e BDEV0' | |
| steps: | |
| - name: Output kernel version | |
| run: | | |
| uname -a | |
| - uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| PIPX_BIN_DIR=/usr/local/bin pipx install nose2 --force | |
| - name: Build and install nvme-cli | |
| run: | | |
| scripts/build.sh -b release -c gcc | |
| - name: Overwrite test config | |
| run: | | |
| CONTROLLER=$(echo ${BDEV0} | sed 's/n[0-9]*$//') | |
| cat > tests/config.json << EOF | |
| { | |
| "controller" : "$CONTROLLER", | |
| "ns1": "${BDEV0}", | |
| "log_dir": "tests/nvmetests/", | |
| "nvme_bin": "$(pwd)/.build-ci/nvme" | |
| } | |
| EOF | |
| cat tests/config.json | |
| - name: Run on device tests | |
| run: | | |
| 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 | |
| - name: Upload logs | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: nvme-cli-test-logs | |
| path: | | |
| ./tests/nvmetests/**/*.log |