]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
github workflows: add armhf and ppc64le cross compile checks
authorJeremy Kerr <jk@codeconstruct.com.au>
Sun, 25 Sep 2022 12:48:31 +0000 (20:48 +0800)
committerJeremy Kerr <jk@codeconstruct.com.au>
Mon, 26 Sep 2022 12:31:01 +0000 (20:31 +0800)
Like we have done in libnvme, this change adds a couple of cross-compile
definitons for the github workflows: one for armhf, one for powerpc64le.

Fixes: https://github.com/linux-nvme/nvme-cli/issues/1687
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
.github/cross/ubuntu-armhf.txt [new file with mode: 0644]
.github/cross/ubuntu-ppc64le.txt [new file with mode: 0644]
.github/workflows/meson.yml

diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-armhf.txt
new file mode 100644 (file)
index 0000000..2eee70b
--- /dev/null
@@ -0,0 +1,17 @@
+[binaries]
+c = '/usr/bin/arm-linux-gnueabihf-gcc'
+ar = '/usr/arm-linux-gnueabihf/bin/ar'
+strip = '/usr/arm-linux-gnueabihf/bin/strip'
+pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'
+ld = '/usr/bin/arm-linux/gnueabihf-ld'
+
+[properties]
+root = '/usr/arm-linux-gnueabihf'
+has_function_printf = true
+skip_sanity_check = true
+
+[host_machine]
+system = 'linux'
+cpu_family = 'arm'
+cpu = 'armv7'
+endian = 'little'
diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-ppc64le.txt
new file mode 100644 (file)
index 0000000..4cf6a92
--- /dev/null
@@ -0,0 +1,17 @@
+[binaries]
+c = '/usr/bin/powerpc64le-linux-gnu-gcc'
+ar = '/usr/powerpc64le-linux-gnu/bin/ar'
+strip = '/usr/powerpc64le-linux-gnu/bin/strip'
+pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'
+ld = '/usr/bin/powerpc64le-linux-gnu-ld'
+
+[properties]
+root = '/usr/powerpc64le-linux-gnu'
+has_function_printf = true
+skip_sanity_check = true
+
+[host_machine]
+system = 'linux'
+cpu_family = 'ppc64'
+cpu = ''
+endian = 'little'
index c49470bc4d46f82741c6cff5aaacac62cfecf782..ee80af3ba35acbd5d7cdca975436f8a578a79e82 100644 (file)
@@ -28,6 +28,66 @@ jobs:
           setup-options: --werror
           action: build
 
+  build-cross-armhf:
+    runs-on: ubuntu-latest
+    steps:
+      - name: set up arm architecture
+        run: |
+          export release=$(lsb_release -c -s)
+          sudo dpkg --add-architecture armhf
+          sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
+          sudo dd of=/etc/apt/sources.list.d/armhf.list <<EOF
+          deb [arch=armhf] http://ports.ubuntu.com/ $release main universe restricted"
+          deb [arch=armhf] http://ports.ubuntu.com/ $release-updates main universe restricted"
+          EOF
+          sudo apt update
+      - name: install armhf compiler
+        run: sudo apt install gcc-arm-linux-gnueabihf pkg-config
+      - name: install libraries
+        run: sudo apt install uuid-dev:armhf libjson-c-dev:armhf
+      - uses: actions/checkout@v3
+      - uses: BSFishy/meson-build@v1.0.3
+        with:
+          # suppress python for now; the python headers currently assume native
+          setup-options: --werror --cross-file=.github/cross/ubuntu-armhf.txt -Dlibnvme:python=false
+          options: --verbose
+          action: build
+      - uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Linux_Meson_Testlog
+          path: build/meson-logs/testlog.txt
+
+  build-cross-ppc64le:
+    runs-on: ubuntu-latest
+    steps:
+      - name: set up ppc64le architecture
+        run: |
+          export release=$(lsb_release -c -s)
+          sudo dpkg --add-architecture ppc64el
+          sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
+          sudo dd of=/etc/apt/sources.list.d/ppc64el.list <<EOF
+          deb [arch=ppc64el] http://ports.ubuntu.com/ $release main universe restricted"
+          deb [arch=ppc64el] http://ports.ubuntu.com/ $release-updates main universe restricted"
+          EOF
+          sudo apt update
+      - name: install powerpc64le compiler
+        run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config
+      - name: install libraries
+        run: sudo apt install uuid-dev:ppc64el libjson-c-dev:ppc64el
+      - uses: actions/checkout@v3
+      - uses: BSFishy/meson-build@v1.0.3
+        with:
+          # suppress python for now; the python headers currently assume native
+          setup-options: --werror --cross-file=.github/cross/ubuntu-ppc64le.txt -Dlibnvme:python=false
+          options: --verbose
+          action: build
+      - uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Linux_Meson_Testlog
+          path: build/meson-logs/testlog.txt
+
   build-fallback:
     runs-on: ubuntu-latest
     steps: