multipath-tools 0.10.1 #984
This file contains 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: compile and unit test on native arch | |
on: | |
push: | |
branches: | |
- master | |
- queue | |
- tip | |
- 'stable-*' | |
paths: | |
- '.github/workflows/native.yaml' | |
- '**.h' | |
- '**.c' | |
- '**Makefile*' | |
- '**.mk' | |
pull_request: | |
branches: | |
- master | |
- queue | |
- 'stable-*' | |
paths: | |
- '.github/workflows/native.yaml' | |
- '**.h' | |
- '**.c' | |
- '**Makefile*' | |
- '**.mk' | |
jobs: | |
stable: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- debian-jessie | |
- debian-buster | |
- debian-bullseye | |
- debian-bookworm | |
- fedora-40 | |
- opensuse-leap | |
steps: | |
- name: checkout | |
uses: actions/checkout@v1 | |
- 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: build and test | |
if: ${{ matrix.os != 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
command: -j -Orecurse test | |
- name: build and test (jessie) | |
# On jessie, we use libreadline 5 (no licensing issue) | |
if: ${{ matrix.os == 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
command: -j -Orecurse READLINE=libreadline test | |
- name: create ${{ env.ARCHIVE_TGT }} | |
if: ${{ matrix.os != 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
command: ${{ env.ARCHIVE_TGT }} | |
- name: create ${{ env.ARCHIVE_TGT }} (jessie) | |
if: ${{ matrix.os == 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
command: READLINE=libreadline ${{ env.ARCHIVE_TGT }} | |
- name: upload binary archive | |
uses: actions/upload-artifact@v4 | |
with: | |
name: native-${{ matrix.os }} | |
path: ${{ env.ARCHIVE_TGT }} | |
overwrite: true | |
clang: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- debian-jessie | |
- debian-buster | |
- debian-bullseye | |
- debian-bookworm | |
- fedora-40 | |
- opensuse-leap | |
steps: | |
- name: checkout | |
uses: actions/checkout@v1 | |
- name: clang | |
if: ${{ matrix.os != 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
params: -e CC=clang | |
command: -j -Orecurse test | |
- name: clang (jessie) | |
if: ${{ matrix.os == 'debian-jessie' }} | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
params: -e CC=clang | |
command: -j -Orecurse READLINE=libreadline test | |
root-test: | |
runs-on: ubuntu-22.04 | |
needs: stable | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- debian-jessie | |
- debian-buster | |
- debian-bullseye | |
- debian-bookworm | |
- fedora-40 | |
- opensuse-leap | |
steps: | |
- name: mpath | |
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@v4 | |
with: | |
name: native-${{ matrix.os }} | |
- name: unpack binary archive | |
run: cpio -idv < test-progs.cpio | |
if: ${{ matrix.os == 'opensuse-leap' }} | |
- name: unpack binary archive | |
run: tar xfmv test-progs.tar | |
if: ${{ matrix.os != 'opensuse-leap' }} | |
- name: run root tests | |
uses: mosteo-actions/docker-run@v1 | |
with: | |
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }} | |
guest-dir: /__w/multipath-tools/multipath-tools | |
host-dir: ${{ github.workspace }} | |
params: > | |
--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: for o in tests/*.out; do echo "===== $o ====="; cat "$o"; done | |
- name: fail | |
run: /bin/false | |
if: ${{ steps.root-test.outcome == 'failure' }} |