summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/AppImageBuilder.yml14
-rw-r--r--.github/azure-pipelines.yml5
-rw-r--r--.github/cross/clang.txt5
-rw-r--r--.github/cross/ubuntu-armhf.txt1
-rw-r--r--.github/cross/ubuntu-ppc64le.txt1
-rw-r--r--.github/cross/ubuntu-s390x.txt18
-rw-r--r--.github/workflows/appimage.yml9
-rw-r--r--.github/workflows/build.yml314
-rw-r--r--.github/workflows/release.yml11
9 files changed, 319 insertions, 59 deletions
diff --git a/.github/AppImageBuilder.yml b/.github/AppImageBuilder.yml
index 3675edf..67b215c 100644
--- a/.github/AppImageBuilder.yml
+++ b/.github/AppImageBuilder.yml
@@ -28,17 +28,15 @@ AppDir:
include:
- libjson-c5
- libhugetlbfs0
+ - libssl3
files:
include:
- - /lib64/libcrypto.so.3
- - /lib64/libdbus-1.so.3
- - /lib64/libjson-c.so.5
+ - libcrypt.so.3
+ - libdbus-1.so.3
+ - libjson-c.so.5
exclude:
- - usr/share/man
- - usr/share/doc/*/README.*
- - usr/share/doc/*/changelog.*
- - usr/share/doc/*/NEWS.*
- - usr/share/doc/*/TODO.*
+ - usr/share/man
+ - usr/share/doc
test:
fedora-30:
image: appimagecrafters/tests-env:fedora-30
diff --git a/.github/azure-pipelines.yml b/.github/azure-pipelines.yml
index 4b52903..f9eb5ed 100644
--- a/.github/azure-pipelines.yml
+++ b/.github/azure-pipelines.yml
@@ -6,7 +6,10 @@
# - nvme/012
# - nvme/013
-trigger: none # Disable CI triggers.
+trigger:
+ - master
+pr:
+ - master
jobs:
- job: blktests
diff --git a/.github/cross/clang.txt b/.github/cross/clang.txt
new file mode 100644
index 0000000..1484a3e
--- /dev/null
+++ b/.github/cross/clang.txt
@@ -0,0 +1,5 @@
+[binaries]
+c = 'clang'
+cpp = 'clang++'
+strip = 'strip'
+pkgconfig = 'pkg-config'
diff --git a/.github/cross/ubuntu-armhf.txt b/.github/cross/ubuntu-armhf.txt
index 2eee70b..41c8328 100644
--- a/.github/cross/ubuntu-armhf.txt
+++ b/.github/cross/ubuntu-armhf.txt
@@ -4,6 +4,7 @@ ar = '/usr/arm-linux-gnueabihf/bin/ar'
strip = '/usr/arm-linux-gnueabihf/bin/strip'
pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'
ld = '/usr/bin/arm-linux/gnueabihf-ld'
+exe_wrapper = '/usr/bin/qemu-arm-static'
[properties]
root = '/usr/arm-linux-gnueabihf'
diff --git a/.github/cross/ubuntu-ppc64le.txt b/.github/cross/ubuntu-ppc64le.txt
index 4cf6a92..6baaefb 100644
--- a/.github/cross/ubuntu-ppc64le.txt
+++ b/.github/cross/ubuntu-ppc64le.txt
@@ -4,6 +4,7 @@ ar = '/usr/powerpc64le-linux-gnu/bin/ar'
strip = '/usr/powerpc64le-linux-gnu/bin/strip'
pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'
ld = '/usr/bin/powerpc64le-linux-gnu-ld'
+exe_wrapper = '/usr/bin/qemu-ppc64le-static'
[properties]
root = '/usr/powerpc64le-linux-gnu'
diff --git a/.github/cross/ubuntu-s390x.txt b/.github/cross/ubuntu-s390x.txt
new file mode 100644
index 0000000..51a3511
--- /dev/null
+++ b/.github/cross/ubuntu-s390x.txt
@@ -0,0 +1,18 @@
+[binaries]
+c = '/usr/bin/s390x-linux-gnu-gcc'
+ar = '/usr/s390x-linux-gnu/bin/ar'
+strip = '/usr/s390x-linux-gnu/bin/strip'
+pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'
+ld = '/usr/bin/s390x-linux-gnu-ld'
+exe_wrapper = '/usr/bin/qemu-s390x-static'
+
+[properties]
+root = '/usr/s390x-linux-gnu'
+has_function_printf = true
+skip_sanity_check = true
+
+[host_machine]
+system = 'linux'
+cpu_family = 's390x'
+cpu = ''
+endian = 'big'
diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml
index c64dfb3..80b0496 100644
--- a/.github/workflows/appimage.yml
+++ b/.github/workflows/appimage.yml
@@ -1,21 +1,22 @@
---
-name: AppImage
+name: appimage
on:
push:
- branches: [ master ]
+ branches: [master]
pull_request:
- branches: [ master ]
+ branches: [master]
env:
DESTDIR: ../AppDir
jobs:
build-appimage:
+ name: build AppImage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install dependencies
- run: sudo apt-get install libjson-c-dev libdbus-1-dev libhugetlbfs-dev
+ run: sudo apt-get install libjson-c-dev libssl-dev libdbus-1-dev libhugetlbfs-dev
- uses: actions/setup-python@v4
with:
python-version: '3.x'
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 805a962..fae50a5 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -3,29 +3,178 @@ name: build
on:
push:
- branches: [ master ]
+ branches: [master]
pull_request:
- branches: [ master ]
+ branches: [master]
workflow_dispatch:
jobs:
- build-distro:
+ 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 libjson-c-dev libhugetlbfs-dev libdbus-1-dev
+ 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:
- setup-options: --werror
action: test
+ meson-version: 0.61.2
+ - uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: log files
+ path: |
+ build/meson-logs/*.txt
- build-cross-armhf:
+ cross-armhf:
+ name: cross armhf
runs-on: ubuntu-latest
steps:
- name: set up arm architecture
@@ -39,23 +188,35 @@ jobs:
EOF
sudo apt update
- name: install armhf compiler
- run: sudo apt install gcc-arm-linux-gnueabihf pkg-config
+ run: sudo apt install gcc-arm-linux-gnueabihf pkg-config qemu-user-static
- name: install libraries
- run: sudo apt install uuid-dev:armhf libjson-c-dev:armhf libdbus-1-dev:armhf
+ run: sudo apt install libjson-c-dev:armhf
- uses: actions/checkout@v3
- uses: BSFishy/meson-build@v1.0.3
+ name: build
with:
- # suppress python for now; the python headers currently assume native
- setup-options: --werror --cross-file=.github/cross/ubuntu-armhf.txt -Dlibnvme:python=false
- options: --verbose
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: Linux_Meson_Testlog
- path: build/meson-logs/testlog.txt
+ name: log files
+ path: |
+ build/meson-logs/*.txt
- build-cross-ppc64le:
+ cross-ppc64le:
+ name: cross ppc64le
runs-on: ubuntu-latest
steps:
- name: set up ppc64le architecture
@@ -69,50 +230,121 @@ jobs:
EOF
sudo apt update
- name: install powerpc64le compiler
- run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config
+ run: sudo apt install gcc-powerpc64le-linux-gnu pkg-config qemu-user-static
- name: install libraries
- run: sudo apt install uuid-dev:ppc64el libjson-c-dev:ppc64el libdbus-1-dev:ppc64el
+ run: sudo apt install libjson-c-dev:ppc64el
- uses: actions/checkout@v3
- uses: BSFishy/meson-build@v1.0.3
+ name: build
with:
- # suppress python for now; the python headers currently assume native
- setup-options: --werror --cross-file=.github/cross/ubuntu-ppc64le.txt -Dlibnvme:python=false
- options: --verbose
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: Linux_Meson_Testlog
- path: build/meson-logs/testlog.txt
+ name: log files
+ path: |
+ build/meson-logs/*.txt
- build-fallback:
+ cross-s390x:
+ name: cross s390x
runs-on: ubuntu-latest
steps:
- - name: install dependencies
- run: sudo apt-get install -y libpam-dev libcap-ng-dev
+ - 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: 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/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:
- setup-options: --werror -Dopenssl:werror=false -Ddbus:werror=false --wrap-mode=forcefallback
- options: --verbose
action: test
meson-version: 0.61.2
+ - uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: log files
+ path: |
+ build/meson-logs/*.txt
- build-static:
+ build-minimal:
+ name: muon minimal
runs-on: ubuntu-latest
steps:
- - name: install dependencies
- run: sudo apt-get install -y 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
- with:
- setup-options: --werror -Dopenssl:werror=false -Ddbus:werror=false --wrap-mode=forcefallback --default-library=static
- options: --verbose
- action: test
- meson-version: 0.61.2
+ - 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
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e4ccb70..c88be9e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,11 +1,12 @@
---
-name: releases
+name: release
on:
push:
branches: [ master ]
tags:
- '**'
+
jobs:
build:
runs-on: ubuntu-latest
@@ -13,7 +14,7 @@ jobs:
permissions:
contents: write
steps:
- - uses: actions/checkout@v3
- - uses: ncipollo/release-action@v1
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
+ - uses: actions/checkout@v3
+ - uses: ncipollo/release-action@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}