-
Notifications
You must be signed in to change notification settings - Fork 710
86 lines (79 loc) · 2.8 KB
/
run-nightly-tests.yml
File metadata and controls
86 lines (79 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
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@v5
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