From 1543122e138a8d7e431dea97a488b66edee27215 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mon, 26 Jun 2023 13:44:21 +0200 Subject: [PATCH] build: Use containers with matrix build Use a matrix build approach and a base container which already contains all the libraries installed. --- .github/cross/clang.txt | 5 - ...buntu-armhf.txt => ubuntu-cross-armhf.txt} | 0 ...u-ppc64le.txt => ubuntu-cross-ppc64le.txt} | 0 ...buntu-s390x.txt => ubuntu-cross-s390x.txt} | 0 .github/cross/ubuntu-static.txt | 6 - .github/workflows/build.yml | 198 ++++-------------- scripts/build.sh | 107 +++++----- 7 files changed, 96 insertions(+), 220 deletions(-) delete mode 100644 .github/cross/clang.txt rename .github/cross/{ubuntu-armhf.txt => ubuntu-cross-armhf.txt} (100%) rename .github/cross/{ubuntu-ppc64le.txt => ubuntu-cross-ppc64le.txt} (100%) rename .github/cross/{ubuntu-s390x.txt => ubuntu-cross-s390x.txt} (100%) delete mode 100644 .github/cross/ubuntu-static.txt diff --git a/.github/cross/clang.txt b/.github/cross/clang.txt deleted file mode 100644 index 1484a3e7..00000000 --- a/.github/cross/clang.txt +++ /dev/null @@ -1,5 +0,0 @@ -[binaries] -c = 'clang' -cpp = 'clang++' -strip = 'strip' -pkgconfig = 'pkg-config' diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-cross-armhf.txt similarity index 100% rename from .github/cross/ubuntu-armhf.txt rename to .github/cross/ubuntu-cross-armhf.txt diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-cross-ppc64le.txt similarity index 100% rename from .github/cross/ubuntu-ppc64le.txt rename to .github/cross/ubuntu-cross-ppc64le.txt diff --git a/.github/cross/ubuntu-s390x.txt b/.github/cross/ubuntu-cross-s390x.txt similarity index 100% rename from .github/cross/ubuntu-s390x.txt rename to .github/cross/ubuntu-cross-s390x.txt diff --git a/.github/cross/ubuntu-static.txt b/.github/cross/ubuntu-static.txt deleted file mode 100644 index d4d6c9a5..00000000 --- a/.github/cross/ubuntu-static.txt +++ /dev/null @@ -1,6 +0,0 @@ -[properties] -c_args = '-static' -cpp_args = c_args - -[binaries] -c = '/usr/bin/gcc' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8110ee91..0a9a369c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,19 +10,22 @@ on: workflow_dispatch: jobs: - gcc-debug: - name: gcc debug + default: runs-on: ubuntu-latest + strategy: + matrix: + compiler: [gcc, clang] + buildtype: [debug, release] + container: + image: ghcr.io/igaw/linux-nvme/debian:0.30 steps: - - name: install libraries - run: sudo apt-get install meson gcc pkg-config libjson-c-dev libssl-dev python3-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - name: build run: | - scripts/build.sh -b debug -c gcc + scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }} - uses: actions/upload-artifact@v3 name: upload logs if: failure() @@ -31,61 +34,39 @@ jobs: path: | .build-ci/meson-logs/*.txt - gcc-release: - name: gcc release + cross: runs-on: ubuntu-latest + strategy: + matrix: + include: + - arch: armhf + port: armhf + compiler: gcc-arm-linux-gnueabihf + packages: + - arch: s390x + port: s390x + compiler: gcc-s390x-linux-gnu + packages: libgcc-s1:s390x + - arch: ppc64le + port: ppc64el + compiler: gcc-powerpc64le-linux-gnu + packges: steps: - - name: install libraries - run: sudo apt-get install meson gcc pkg-config libjson-c-dev libdbus-1-dev python3-dev - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: build - run: | - scripts/build.sh -b release -c gcc libdbus - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - .build-ci/meson-logs/*.txt - - gcc-release-static: - name: gcc release static - runs-on: ubuntu-latest - steps: - - name: install libraries - run: sudo apt-get install meson gcc pkg-config libpam-dev libcap-ng-dev - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: build + - name: set up arm architecture run: | - scripts/build.sh -b release -c gcc static - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - .build-ci/meson-logs/*.txt - - clang-debug: - name: clang debug - runs-on: ubuntu-latest - steps: - - name: install libraries - run: sudo apt-get install meson clang pkg-config libjson-c-dev libdbus-1-dev python3-dev - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' + export release=$(lsb_release -c -s) + sudo dpkg --add-architecture ${{ matrix.port }} + sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list + sudo dd of=/etc/apt/sources.list.d/${{ matrix.arch }}.list <