2025-02-16 12:20:48 +01:00
|
|
|
---
|
|
|
|
name: build
|
2025-02-16 12:15:45 +01:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
2025-02-16 12:23:16 +01:00
|
|
|
branches: [master]
|
2025-02-16 12:15:45 +01:00
|
|
|
pull_request:
|
2025-02-16 12:23:16 +01:00
|
|
|
branches: [master]
|
2025-02-16 12:15:45 +01:00
|
|
|
|
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
jobs:
|
2025-02-16 12:24:13 +01:00
|
|
|
default:
|
2025-02-16 12:15:45 +01:00
|
|
|
runs-on: ubuntu-latest
|
2025-02-16 12:24:13 +01:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
compiler: [gcc, clang]
|
|
|
|
buildtype: [debug, release]
|
|
|
|
container:
|
|
|
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
2025-02-16 12:23:16 +01:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
|
|
with:
|
|
|
|
python-version: '3.x'
|
2025-02-16 12:24:13 +01:00
|
|
|
- name: build
|
|
|
|
run: |
|
|
|
|
scripts/build.sh -b ${{ matrix.buildtype }} -c ${{ matrix.compiler }}
|
2025-02-16 12:23:16 +01:00
|
|
|
- uses: actions/upload-artifact@v3
|
2025-02-16 12:24:13 +01:00
|
|
|
name: upload logs
|
2025-02-16 12:23:16 +01:00
|
|
|
if: failure()
|
|
|
|
with:
|
2025-02-16 12:24:13 +01:00
|
|
|
name: logs files
|
2025-02-16 12:23:16 +01:00
|
|
|
path: |
|
2025-02-16 12:24:13 +01:00
|
|
|
.build-ci/meson-logs/*.txt
|
2025-02-16 12:15:45 +01:00
|
|
|
|
2025-02-16 12:24:13 +01:00
|
|
|
cross:
|
2025-02-16 12:23:16 +01:00
|
|
|
runs-on: ubuntu-latest
|
2025-02-16 12:24:13 +01:00
|
|
|
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:
|
2025-02-16 12:15:45 +01:00
|
|
|
steps:
|
2025-02-16 12:16:19 +01:00
|
|
|
- uses: actions/checkout@v3
|
2025-02-16 12:18:36 +01:00
|
|
|
- name: set up arm architecture
|
|
|
|
run: |
|
|
|
|
export release=$(lsb_release -c -s)
|
2025-02-16 12:24:13 +01:00
|
|
|
sudo dpkg --add-architecture ${{ matrix.port }}
|
2025-02-16 12:18:36 +01:00
|
|
|
sudo sed -i -e 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
|
2025-02-16 12:24:13 +01:00
|
|
|
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"
|
2025-02-16 12:18:36 +01:00
|
|
|
EOF
|
|
|
|
sudo apt update
|
2025-02-16 12:24:13 +01:00
|
|
|
sudo apt install -y meson pkg-config qemu-user-static ${{ matrix.compiler}} libjson-c-dev:${{ matrix.port }} ${{ matrix.packages }}
|
|
|
|
- name: build
|
2025-02-16 12:18:36 +01:00
|
|
|
run: |
|
2025-02-16 12:24:13 +01:00
|
|
|
scripts/build.sh -b release -c gcc -t ${{ matrix.arch }} cross
|
2025-02-16 12:18:36 +01:00
|
|
|
- uses: actions/upload-artifact@v3
|
2025-02-16 12:24:13 +01:00
|
|
|
name: upload logs
|
2025-02-16 12:18:36 +01:00
|
|
|
if: failure()
|
|
|
|
with:
|
2025-02-16 12:23:16 +01:00
|
|
|
name: log files
|
|
|
|
path: |
|
2025-02-16 12:24:13 +01:00
|
|
|
.build-ci/meson-logs/*.txt
|
2025-02-16 12:18:36 +01:00
|
|
|
|
2025-02-16 12:24:13 +01:00
|
|
|
fallback-shared-libraries:
|
|
|
|
name: fallback shared libraries
|
2025-02-16 12:16:19 +01:00
|
|
|
runs-on: ubuntu-latest
|
2025-02-16 12:24:13 +01:00
|
|
|
container:
|
|
|
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
|
|
|
if: github.ref == 'refs/heads/master'
|
2025-02-16 12:16:19 +01:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
2025-02-16 12:24:13 +01:00
|
|
|
- uses: actions/setup-python@v4
|
2025-02-16 12:16:19 +01:00
|
|
|
with:
|
2025-02-16 12:24:13 +01:00
|
|
|
python-version: '3.x'
|
|
|
|
- name: build
|
|
|
|
run: |
|
|
|
|
scripts/build.sh -b release -c gcc fallback
|
2025-02-16 12:23:16 +01:00
|
|
|
- uses: actions/upload-artifact@v3
|
|
|
|
if: failure()
|
|
|
|
with:
|
|
|
|
name: log files
|
|
|
|
path: |
|
2025-02-16 12:24:13 +01:00
|
|
|
.build-ci/meson-logs/*.txt
|
2025-02-16 12:16:19 +01:00
|
|
|
|
2025-02-16 12:24:13 +01:00
|
|
|
build-muon:
|
|
|
|
name: muon minimal static
|
2025-02-16 12:16:19 +01:00
|
|
|
runs-on: ubuntu-latest
|
2025-02-16 12:24:13 +01:00
|
|
|
container:
|
|
|
|
image: ghcr.io/igaw/linux-nvme/debian:0.30
|
2025-02-16 12:16:19 +01:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
2025-02-16 12:23:16 +01:00
|
|
|
- name: build
|
|
|
|
run: |
|
2025-02-16 12:24:13 +01:00
|
|
|
scripts/build.sh -m muon
|