summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml380
1 files changed, 60 insertions, 320 deletions
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