File: foreign.yaml

package info (click to toggle)
multipath-tools 0.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,992 kB
  • sloc: ansic: 63,788; perl: 1,622; makefile: 729; sh: 647; pascal: 150
file content (149 lines) | stat: -rw-r--r-- 4,558 bytes parent folder | download
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: compile and unit test on foreign arch
on:
  push:
    branches:
      - master
      - queue
      - tip
      - 'stable-*'
    paths:
      - '.github/workflows/foreign.yaml'
      - '**.h'
      - '**.c'
      - '**Makefile*'
      - '**.mk'
  pull_request:
    branches:
      - master
      - queue
      - 'stable-*'
    paths:
      - '.github/workflows/foreign.yaml'
      - '**.h'
      - '**.c'
      - '**Makefile*'
      - '**.mk'

jobs:

  cross-build:
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        os: [bullseye, bookworm, trixie, sid]
        arch: [ppc64le, arm64, s390x]
        exclude:
          - os: bullseye
            arch: ppc64le
          - os: bullseye
            arch: s390x
    container: ghcr.io/mwilck/multipath-cross-debian_cross-${{ matrix.os }}-${{ matrix.arch }}
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: build
        run: make -j -Orecurse test-progs.tar
      - name: upload binary archive
        uses: actions/upload-artifact@v4
        with:
          name: cross-${{ matrix.os }}-${{ matrix.arch }}
          path: test-progs.tar
          overwrite: true

  test:
    runs-on: ubuntu-22.04
    needs: cross-build
    strategy:
      fail-fast: false
      matrix:
        os: [bullseye, bookworm, trixie, sid]
        arch: [ppc64le, arm64, s390x]
        exclude:
          - os: bullseye
            arch: ppc64le
          - os: bullseye
            arch: s390x
    steps:
      - name: set container arch
        run: echo CONTAINER_ARCH="${{ matrix.arch }}" >> $GITHUB_ENV
        if: ${{ matrix.arch != 'armhf' }}
      - name: set container arch
        run: echo CONTAINER_ARCH="arm/v7" >> $GITHUB_ENV
        if: ${{ matrix.arch == 'armhf' }}
      - name: download binary archive
        uses: actions/download-artifact@v4
        with:
          name: cross-${{ matrix.os }}-${{ matrix.arch }}
      - name: unpack binary archive
        run: tar xfv test-progs.tar
      - name: enable foreign arch
        uses: docker/setup-qemu-action@v2
        with:
          image: tonistiigi/binfmt:latest
      - name: run tests
        uses: mosteo-actions/docker-run@v1
        with:
          image: ghcr.io/mwilck/multipath-run-debian-${{ matrix.os }}
          guest-dir: /__w/multipath-tools/multipath-tools
          host-dir: ${{ github.workspace }}
          command: -C tests
          params: >
            --workdir /__w/multipath-tools/multipath-tools
            --platform linux/${{ env.CONTAINER_ARCH }}
          pull-params: "--platform linux/${{ env.CONTAINER_ARCH }}"

  root-test:
    runs-on: ubuntu-22.04
    needs: cross-build
    strategy:
      fail-fast: false
      matrix:
        os: [bullseye, bookworm, trixie, sid]
        arch: [ppc64le, arm64, s390x]
        exclude:
          - os: bullseye
            arch: ppc64le
          - os: bullseye
            arch: s390x
    steps:
      - name: mpath
        run: sudo modprobe dm_multipath
      - name: brd
        run: sudo modprobe brd rd_nr=1 rd_size=65536
      - name: set container arch
        run: echo CONTAINER_ARCH="${{ matrix.arch }}" >> $GITHUB_ENV
        if: ${{ matrix.arch != 'armhf' }}
      - name: set container arch
        run: echo CONTAINER_ARCH="arm/v7" >> $GITHUB_ENV
        if: ${{ matrix.arch == 'armhf' }}
      - name: download binary archive
        uses: actions/download-artifact@v4
        with:
          name: cross-${{ matrix.os }}-${{ matrix.arch }}
      - name: unpack binary archive
        run: tar xfv test-progs.tar
      - name: enable foreign arch
        uses: docker/setup-qemu-action@v2
        with:
          image: tonistiigi/binfmt:latest
      - name: run tests
        uses: mosteo-actions/docker-run@v1
        with:
          image: ghcr.io/mwilck/multipath-run-debian-${{ matrix.os }}
          guest-dir: /__w/multipath-tools/multipath-tools
          host-dir: ${{ github.workspace }}
          command: -C tests dmevents.out
          params: >
            --workdir /__w/multipath-tools/multipath-tools
            --platform linux/${{ env.CONTAINER_ARCH }}
            --privileged
            -v /dev/ram0:/dev/ram0 -e DIO_TEST_DEV=/dev/ram0
          pull-params: "--platform linux/${{ env.CONTAINER_ARCH }}"
        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' }}