summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/appimage.yml33
-rw-r--r--.github/workflows/build.yml118
-rw-r--r--.github/workflows/release.yml19
3 files changed, 170 insertions, 0 deletions
diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml
new file mode 100644
index 0000000..c64dfb3
--- /dev/null
+++ b/.github/workflows/appimage.yml
@@ -0,0 +1,33 @@
+---
+name: AppImage
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+env:
+ DESTDIR: ../AppDir
+
+jobs:
+ 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
+ - uses: actions/setup-python@v4
+ with:
+ python-version: '3.x'
+ - uses: BSFishy/meson-build@v1.0.3
+ with:
+ setup-options: --werror --buildtype=release --prefix=/usr
+ action: install
+ - name: build AppImage
+ uses: AppImageCrafters/build-appimage@v1.3
+ with:
+ recipe: .github/AppImageBuilder.yml
+ - uses: actions/upload-artifact@v3
+ with:
+ name: AppImage
+ path: '*.AppImage*'
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..805a962
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,118 @@
+---
+name: build
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+ workflow_dispatch:
+
+jobs:
+ build-distro:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: install dependencies
+ run: sudo apt-get install libjson-c-dev libhugetlbfs-dev libdbus-1-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
+ action: test
+
+ build-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
+ - name: install libraries
+ run: sudo apt install uuid-dev:armhf libjson-c-dev:armhf libdbus-1-dev:armhf
+ - uses: actions/checkout@v3
+ - uses: BSFishy/meson-build@v1.0.3
+ 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
+ - uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: Linux_Meson_Testlog
+ path: build/meson-logs/testlog.txt
+
+ build-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
+ - name: install libraries
+ run: sudo apt install uuid-dev:ppc64el libjson-c-dev:ppc64el libdbus-1-dev:ppc64el
+ - uses: actions/checkout@v3
+ - uses: BSFishy/meson-build@v1.0.3
+ 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
+ - uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: Linux_Meson_Testlog
+ path: build/meson-logs/testlog.txt
+
+ build-fallback:
+ 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
+ options: --verbose
+ action: test
+ meson-version: 0.61.2
+
+ build-static:
+ 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
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..e4ccb70
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,19 @@
+---
+name: releases
+
+on:
+ push:
+ branches: [ master ]
+ tags:
+ - '**'
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ if: startsWith(github.ref, 'refs/tags/v')
+ permissions:
+ contents: write
+ steps:
+ - uses: actions/checkout@v3
+ - uses: ncipollo/release-action@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}