|
9 | 9 | jobs: |
10 | 10 | nightly-tests: |
11 | 11 | runs-on: nvme-nvm |
| 12 | + container: |
| 13 | + image: ghcr.io/linux-nvme/debian.python:latest |
| 14 | + #Expose all devices to the container through the `privileged` flag. |
| 15 | + # |
| 16 | + #BDEV0 is an environment variable of the self-hosted runner instance |
| 17 | + #that contains a valid nvme ctrl name which is capable of the nvm |
| 18 | + #command set. |
| 19 | + options: '--privileged -e BDEV0' |
12 | 20 | steps: |
13 | 21 | - name: Output kernel version |
14 | 22 | run: | |
15 | 23 | uname -a |
16 | | - - name: Clean up test device |
17 | | - run: | |
18 | | - #BDEV0 is an environment variable of the self-hosted runner instance |
19 | | - #that contains a valid nvme ctrl name which is capable of the nvm |
20 | | - #command set. |
21 | | - CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') |
22 | | - sudo nvme delete-ns $CONTROLLER -n 0xffffffff |
23 | | - sudo nvme format $CONTROLLER -n 0xffffffff -l 0 -f |
24 | | - SIZE=$(sudo nvme id-ctrl $CONTROLLER --output-format=json | jq -r '{tnvmcap} | .[]' | awk '{print $1/512}') |
25 | | - sudo nvme create-ns -s $SIZE -c $SIZE -f 0 -d 0 --csi=0 $CONTROLLER |
26 | | - sudo nvme attach-ns $CONTROLLER -n 1 -c 0 |
27 | 24 | - uses: actions/checkout@v4 |
28 | 25 | - name: Install dependencies |
29 | 26 | run: | |
30 | | - sudo apt-get update |
31 | | - sudo apt-get install --no-install-recommends -y \ |
32 | | - meson gcc pkg-config git libjson-c-dev libssl-dev libkeyutils-dev \ |
33 | | - libdbus-1-dev libpython3-dev pipx python3-dev swig xz-utils |
34 | | - pipx ensurepath |
35 | | - sudo PIPX_BIN_DIR=/usr/local/bin pipx install nose2 |
36 | | - sudo PIPX_BIN_DIR=/usr/local/bin pipx install flake8 |
37 | | - sudo PIPX_BIN_DIR=/usr/local/bin pipx install mypy |
38 | | - sudo PIPX_BIN_DIR=/usr/local/bin pipx install autopep8 |
39 | | - sudo PIPX_BIN_DIR=/usr/local/bin pipx install isort |
| 27 | + PIPX_BIN_DIR=/usr/local/bin pipx install nose2 --force |
40 | 28 | - name: Build and install nvme-cli |
41 | 29 | run: | |
42 | 30 | scripts/build.sh -b release -c gcc |
43 | | - sudo meson install -C .build-ci |
44 | | - sudo ldconfig /usr/local/lib64 |
45 | 31 | - name: Overwrite test config |
46 | 32 | run: | |
47 | 33 | CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') |
48 | 34 | cat > tests/config.json << EOF |
49 | 35 | { |
50 | 36 | "controller" : "$CONTROLLER", |
51 | 37 | "ns1": "/dev/${BDEV0}", |
52 | | - "log_dir": "tests/nvmetests/" |
| 38 | + "log_dir": "tests/nvmetests/", |
| 39 | + "nvme_bin": "$(pwd)/.build-ci/nvme" |
53 | 40 | } |
54 | 41 | EOF |
| 42 | + cat tests/config.json |
55 | 43 | - name: Run on device tests |
56 | 44 | run: | |
57 | | - sudo nose2 --verbose --start-dir tests \ |
| 45 | + nose2 --verbose --start-dir tests \ |
58 | 46 | nvme_attach_detach_ns_test \ |
59 | 47 | nvme_compare_test \ |
60 | 48 | nvme_copy_test \ |
|
79 | 67 | uses: actions/upload-artifact@v4 |
80 | 68 | if: always() |
81 | 69 | with: |
82 | | - name: logs files |
| 70 | + name: nvme-cli-test-logs |
83 | 71 | path: | |
84 | 72 | ./tests/nvmetests/**/*.log |
85 | | - - name: Clean up test device |
86 | | - if: always() |
87 | | - run: | |
88 | | - CONTROLLER=$(echo /dev/${BDEV0} | sed 's/n[0-9]*$//') |
89 | | - sudo nvme delete-ns $CONTROLLER -n 0xffffffff |
90 | | - sudo nvme format $CONTROLLER -n 0xffffffff -l 0 -f |
91 | | - SIZE=$(sudo nvme id-ctrl $CONTROLLER --output-format=json | jq -r '{tnvmcap} | .[]' | awk '{print $1/512}') |
92 | | - sudo nvme create-ns -s $SIZE -c $SIZE -f 0 -d 0 --csi=0 $CONTROLLER |
93 | | - sudo nvme attach-ns $CONTROLLER -n 1 -c 0 |
0 commit comments