diff --git a/.github/workflows/native.yaml b/.github/workflows/native.yaml index de7f45f21..80ff6df56 100644 --- a/.github/workflows/native.yaml +++ b/.github/workflows/native.yaml @@ -40,34 +40,37 @@ jobs: - name: checkout uses: actions/checkout@v1 - name: build and test - if: ${{ matrix.os != 'jessie' }} + if: ${{ matrix.os != 'debian-jessie' }} run: make -j -Orecurse test - name: build and test (jessie) # On jessie, we use libreadline 5 (no licensing issue) - if: ${{ matrix.os == 'jessie' }} + if: ${{ matrix.os == 'debian-jessie' }} run: make -j -Orecurse READLINE=libreadline test + + - name: set archive name + # Leap containers have cpio but not tar + run: echo ARCHIVE_TGT=test-progs.cpio >> $GITHUB_ENV + if: ${{ matrix.os == 'opensuse-leap' }} + - name: set archive name + run: echo ARCHIVE_TGT=test-progs.tar >> $GITHUB_ENV + if: ${{ matrix.os != 'opensuse-leap' }} - name: create binary archive - run: > - printf "%s\\n" - Makefile* config.mk - libmpathcmd/*.so* libmultipath/*.so* libmpathutil/*.so* - libmultipath/checkers/*.so libmultipath/prioritizers/*.so - libmultipath/foreign/*.so - tests/lib tests/*-test tests/Makefile tests/*.so* + run: make ${{ env.ARCHIVE_TGT }} - name: upload binary archive uses: actions/upload-artifact@v1 with: name: native-${{ matrix.os }} - path: binaries.cpio + path: ${{ env.ARCHIVE_TGT }} + - name: clean run: make clean - name: clang - if: ${{ matrix.os != 'jessie' }} + if: ${{ matrix.os != 'debian-jessie' }} env: CC: clang run: make -j -Orecurse test - name: clang (jessie) - if: ${{ matrix.os == 'jessie' }} + if: ${{ matrix.os == 'debian-jessie' }} env: CC: clang run: make READLINE=libreadline test @@ -90,19 +93,35 @@ jobs: run: sudo modprobe dm_multipath - name: brd run: sudo modprobe brd rd_nr=1 rd_size=65536 + + - name: checkout + uses: actions/checkout@v1 + - name: download binary archive uses: actions/download-artifact@v1 with: name: native-${{ matrix.os }} - name: unpack binary archive - run: cpio -idmv + --workdir /__w/multipath-tools/multipath-tools --privileged + -v /dev/ram0:/dev/ram0 -e DIO_TEST_DEV=/dev/ram0 + command: -C tests directio.out dmevents.out + id: root-test + continue-on-error: true - name: show root test output - run: cat tests/directio.out tests/dmevents.out + run: for o in tests/*.out; do echo "===== $o ====="; cat "$o"; done + - name: fail + run: /bin/false + if: ${{ steps.root-test.outcome == 'failure' }}