diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/cross/clang.txt | 5 | ||||
-rw-r--r-- | .github/cross/ubuntu-cross-armhf.txt (renamed from .github/cross/ubuntu-armhf.txt) | 0 | ||||
-rw-r--r-- | .github/cross/ubuntu-cross-ppc64le.txt (renamed from .github/cross/ubuntu-ppc64le.txt) | 0 | ||||
-rw-r--r-- | .github/cross/ubuntu-cross-s390x.txt (renamed from .github/cross/ubuntu-s390x.txt) | 0 | ||||
-rw-r--r-- | .github/cross/ubuntu-static.txt | 6 | ||||
-rw-r--r-- | .github/workflows/build.yml | 380 | ||||
-rw-r--r-- | .github/workflows/release-python.yml | 3 |
7 files changed, 63 insertions, 331 deletions
diff --git a/.github/cross/clang.txt b/.github/cross/clang.txt deleted file mode 100644 index 1484a3e..0000000 --- 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 index 41c8328..41c8328 100644 --- a/.github/cross/ubuntu-armhf.txt +++ b/.github/cross/ubuntu-cross-armhf.txt diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-cross-ppc64le.txt index 6baaefb..6baaefb 100644 --- a/.github/cross/ubuntu-ppc64le.txt +++ b/.github/cross/ubuntu-cross-ppc64le.txt diff --git a/.github/cross/ubuntu-s390x.txt b/.github/cross/ubuntu-cross-s390x.txt index 51a3511..51a3511 100644 --- a/.github/cross/ubuntu-s390x.txt +++ b/.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 d4d6c9a..0000000 --- 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 b914aa0..0a9a369 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,380 +10,120 @@ 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 gcc pkg-config libjson-c-dev libssl-dev python3-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=debug - --wrap-mode=nofallback - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 + - name: build + run: | + scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }} - uses: actions/upload-artifact@v3 name: upload logs if: failure() with: name: logs files path: | - build/meson-logs/*.txt + .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 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' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=nofallback - -Dlibdbus=enabled - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 + - name: set up arm architecture + run: | + 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 <<EOF + deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release main universe restricted" + deb [arch=${{ matrix.port }}] http://ports.ubuntu.com/ $release-updates main universe restricted" + EOF + sudo apt update + sudo apt install -y meson pkg-config qemu-user-static ${{ matrix.compiler}} libjson-c-dev:${{ matrix.port }} ${{ matrix.packages }} + - name: build + run: | + scripts/build.sh -b release -c gcc -t ${{ matrix.arch }} cross - uses: actions/upload-artifact@v3 name: upload logs if: failure() with: name: log files path: | - build/meson-logs/*.txt + .build-ci/meson-logs/*.txt - clang-release: - name: clang release + libdbus: + name: libdbus runs-on: ubuntu-latest + container: + image: ghcr.io/igaw/linux-nvme/debian:0.30 steps: - - name: install libraries - run: sudo apt-get install 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' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=nofallback - --cross-file=.github/cross/clang.txt - -Dlibdbus=enabled - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 + - 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/meson-logs/*.txt + .build-ci/meson-logs/*.txt fallback-shared-libraries: name: fallback shared libraries runs-on: ubuntu-latest + container: + image: ghcr.io/igaw/linux-nvme/debian:0.30 + if: github.ref == 'refs/heads/master' steps: - - name: install libraries - run: sudo apt-get install libpam-dev libcap-ng-dev - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=forcefallback - -Dlibdbus=enabled - -Ddbus:werror=false - -Dopenssl:werror=false - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 - - uses: actions/upload-artifact@v3 - if: failure() - with: - name: log files - path: | - build/meson-logs/*.txt - - fallback-static-libraries: - name: fallback static libraries - runs-on: ubuntu-latest - steps: - - name: install libraries - run: sudo apt-get install libpam-dev libcap-ng-dev - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=forcefallback - --default-library=static - -Dlibdbus=enabled - -Ddbus:werror=false - -Dopenssl:werror=false - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - build/meson-logs/*.txt - - fallback-all-static: - name: fallback all static - runs-on: ubuntu-latest - steps: - - name: install libraries - run: sudo apt-get install libpam-dev libcap-ng-dev - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.x' - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=forcefallback - --default-library=static - --cross-file=.github/cross/ubuntu-static.txt - -Dlibdbus=enabled - -Ddbus:werror=false - -Dopenssl:werror=false - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - build/meson-logs/*.txt - - cross-armhf: - name: 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 qemu-user-static - - name: install libraries - run: sudo apt install libjson-c-dev:armhf - - uses: actions/checkout@v3 - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=nofallback - --cross-file=.github/cross/ubuntu-armhf.txt - -Dpython=disabled - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - build/meson-logs/*.txt - - cross-ppc64le: - name: 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 qemu-user-static - - name: install libraries - run: sudo apt install libjson-c-dev:ppc64el - - uses: actions/checkout@v3 - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=nofallback - --cross-file=.github/cross/ubuntu-ppc64le.txt - -Dpython=disabled - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 - - uses: actions/upload-artifact@v3 - name: upload logs - if: failure() - with: - name: log files - path: | - build/meson-logs/*.txt - - cross-s390x: - name: cross s390x - runs-on: ubuntu-latest - steps: - - name: set up s390x architecture + - name: build run: | - export release=$(lsb_release -c -s) - sudo dpkg --add-architecture s390x - sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list - sudo dd of=/etc/apt/sources.list.d/s390x.list <<EOF - deb [arch=s390x] http://ports.ubuntu.com/ $release main universe restricted" - deb [arch=s390x] http://ports.ubuntu.com/ $release-updates main universe restricted" - EOF - sudo apt update - - name: install s390x compiler - run: sudo apt install gcc-s390x-linux-gnu pkg-config qemu-user-static - - name: install libraries - run: sudo apt install libjson-c-dev:s390x - - uses: actions/checkout@v3 - - uses: BSFishy/meson-build@v1.0.3 - name: build - with: - action: build - setup-options: > - --werror - --buildtype=release - --wrap-mode=nofallback - --cross-file=.github/cross/ubuntu-s390x.txt - -Dpython=disabled - meson-version: 0.61.2 - - uses: BSFishy/meson-build@v1.0.3 - name: test - with: - action: test - meson-version: 0.61.2 + scripts/build.sh -b release -c gcc fallback - uses: actions/upload-artifact@v3 - name: upload logs if: failure() with: name: log files path: | - build/meson-logs/*.txt + .build-ci/meson-logs/*.txt build-muon: - name: muon minimal + name: muon minimal static runs-on: ubuntu-latest + container: + image: ghcr.io/igaw/linux-nvme/debian:0.30 steps: - uses: actions/checkout@v3 - - name: build muon and samurai build-tool - run: | - mkdir build-tools - cd build-tools - git clone --depth 1 https://git.sr.ht/~lattis/muon - cd muon - - export CC=gcc - export ninja=build/samu - - ./tools/bootstrap_ninja.sh build - ./bootstrap.sh build - - build/muon setup \ - -Dlibcurl=disabled \ - -Dlibarchive=disabled \ - -Ddocs=disabled \ - -Dsamurai=disabled \ - build - build/samu -C build - build/muon -C build test - name: build run: | - export PATH=$(pwd)/build-tools/muon/build:$PATH - - muon setup \ - -Dpython=disabled \ - -Dopenssl=disabled \ - -Dlibdbus=disabled \ - -Djson-c=disabled \ - build - samu -C build - - name: test - run: | - export PATH=$(pwd)/build-tools/muon/build:$PATH - - muon -C build test + scripts/build.sh -m muon diff --git a/.github/workflows/release-python.yml b/.github/workflows/release-python.yml index 32bf2d0..86dc0de 100644 --- a/.github/workflows/release-python.yml +++ b/.github/workflows/release-python.yml @@ -16,6 +16,9 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: + - name: install libraries + run: sudo apt-get install gcc pkg-config libjson-c-dev libssl-dev python3-dev + - uses: actions/checkout@v3 - name: Build sdist |