350 lines
10 KiB
YAML
350 lines
10 KiB
YAML
---
|
|
name: build
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
gcc-debug:
|
|
name: gcc debug
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: install dependencies
|
|
run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-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
|
|
-Dlibnvme: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
|
|
|
|
gcc-release:
|
|
name: gcc release
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: install dependencies
|
|
run: sudo apt-get install gcc pkg-config libjson-c-dev libhugetlbfs-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
|
|
-Dlibnvme: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
|
|
|
|
clang-release:
|
|
name: clang release
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: install dependencies
|
|
run: sudo apt-get install clang pkg-config libjson-c-dev libhugetlbfs-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
|
|
--cross-file=.github/cross/clang.txt
|
|
-Dlibnvme: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-shared-libraries:
|
|
name: fallback shared libraries
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: install dependencies
|
|
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=shared
|
|
-Dlibnvme: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 dependencies
|
|
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
|
|
-Dlibnvme: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
|
|
|
|
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
|
|
--cross-file=.github/cross/ubuntu-armhf.txt
|
|
-Dlibnvme:python=disabled
|
|
-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
|
|
|
|
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
|
|
--cross-file=.github/cross/ubuntu-ppc64le.txt
|
|
-Dlibnvme:werror=false
|
|
-Dlibnvme:python=disabled
|
|
-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
|
|
|
|
cross-s390x:
|
|
name: cross s390x
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: set up s390x architecture
|
|
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
|
|
--cross-file=.github/cross/ubuntu-s390x.txt
|
|
-Dlibnvme:werror=false
|
|
-Dlibnvme:python=disabled
|
|
-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
|
|
|
|
build-minimal:
|
|
name: muon minimal
|
|
runs-on: ubuntu-latest
|
|
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: fetch libnvme
|
|
run: |
|
|
cd subprojects
|
|
git clone https://github.com/linux-nvme/libnvme.git
|
|
libnvme_ref=$(sed -n "s/revision = \([0-9a-z]\+\)/\1/p" libnvme.wrap)
|
|
git -C libnvme checkout $libnvme_ref
|
|
- name: build
|
|
run: |
|
|
export PATH=$(pwd)/build-tools/muon/build:$PATH
|
|
|
|
muon setup \
|
|
-Dlibnvme:python=disabled \
|
|
-Dlibnvme:json-c=disabled \
|
|
-Djson-c=disabled \
|
|
build
|
|
samu -C build
|
|
- name: test
|
|
run: |
|
|
export PATH=$(pwd)/build-tools/muon/build:$PATH
|
|
|
|
muon -C build test
|