summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/doc.yml21
-rw-r--r--.github/workflows/meson.yml69
-rw-r--r--.github/workflows/python-publish.yml67
3 files changed, 157 insertions, 0 deletions
diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
new file mode 100644
index 0000000..75afbc8
--- /dev/null
+++ b/.github/workflows/doc.yml
@@ -0,0 +1,21 @@
+name: libnvme documenation CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ kernel_doc_job:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout@v2
+ - name: Check documentation format
+ run: |
+ API_FILES="fabrics.h filters.h ioctl.h linux.h tree.h types.h"
+ for file in $API_FILES; do
+ ./doc/kernel-doc -v -none src/nvme/$file 2>&1 | sed -r 's/^([^:]+):([0-9]+): (warning|error):/::\3 file=\1,line=\2::/g'
+ done
+ shell: bash
diff --git a/.github/workflows/meson.yml b/.github/workflows/meson.yml
new file mode 100644
index 0000000..c89de99
--- /dev/null
+++ b/.github/workflows/meson.yml
@@ -0,0 +1,69 @@
+name: libnvme meson CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+ workflow_dispatch:
+
+jobs:
+ build-disto:
+ runs-on: ubuntu-latest
+ steps:
+ - name: install libraries
+ run: sudo apt-get install libjson-c-dev
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v1
+ - uses: BSFishy/meson-build@v1.0.3
+ with:
+ setup-options: --werror
+ options: --verbose
+ action: test
+ # Preserve meson's log file on failure
+ - uses: actions/upload-artifact@v1
+ if: failure()
+ with:
+ name: Linux_Meson_Testlog
+ path: build/meson-logs/testlog.txt
+
+ build-fallback:
+ runs-on: ubuntu-latest
+ steps:
+ - name: install libraries
+ run: sudo apt-get remove -y libssl-dev
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v1
+ - uses: BSFishy/meson-build@v1.0.3
+ with:
+ setup-options: --werror
+ options: --verbose
+ action: test
+ meson-version: 0.61.2
+ # Preserve meson's log file on failure
+ - uses: actions/upload-artifact@v1
+ if: failure()
+ with:
+ name: Linux_Meson_log
+ path: build/meson-logs/meson-log.txt
+
+ code-coverage:
+ runs-on: ubuntu-latest
+ steps:
+ - name: install libraries
+ run: sudo apt-get install libjson-c-dev lcov
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v1
+ - uses: BSFishy/meson-build@v1.0.3
+ with:
+ setup-options: -Db_coverage=true --werror
+ options: --verbose
+ # Can't use 'coverage' here, see https://github.com/BSFishy/meson-build/issues/4
+ action: test
+ - name: Generate Coverage Report
+ # Can't use meson here, see https://github.com/mesonbuild/meson/issues/7895
+ run: ninja -C build coverage --verbose
+ - uses: codecov/codecov-action@v1
+ with:
+ fail_ci_if_error: false
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
new file mode 100644
index 0000000..7e451ef
--- /dev/null
+++ b/.github/workflows/python-publish.yml
@@ -0,0 +1,67 @@
+# This workflow will upload a Python Package using Twine when a release is created
+# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+name: Build and upload to PyPI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+ workflow_dispatch:
+
+jobs:
+ build_wheels:
+ name: Build wheels manylinux
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Build wheels
+ uses: pypa/cibuildwheel@v2.3.1
+ env:
+ CIBW_REPAIR_WHEEL_COMMAND_LINUX: ""
+ CIBW_SKIP: "*-musllinux_*"
+ CIBW_BEFORE_BUILD_LINUX: yum install -y openssl-devel libuuid-devel json-c-devel
+ CIBW_BUILD_VERBOSITY: 1
+
+ - uses: actions/upload-artifact@v2
+ with:
+ path: ./wheelhouse/*.whl
+ retention-days: 5
+
+ build_sdist:
+ name: Build source distribution
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Build sdist
+ run: pipx run build --sdist
+
+ - uses: actions/upload-artifact@v2
+ with:
+ path: dist/*.tar.gz
+ retention-days: 5
+
+ upload_pypi:
+ needs: [build_wheels, build_sdist]
+ runs-on: ubuntu-latest
+ if: github.event_name == 'release' && github.event.action == 'published'
+ steps:
+ - uses: actions/download-artifact@v2
+ with:
+ name: artifact
+ path: dist
+
+ - name: Publish package to TestPyPI
+ uses: pypa/gh-action-pypi-publish@release/v1
+ with:
+ user: __token__
+ password: ${{ secrets.TEST_PYPI_API_TOKEN }}
+ repository_url: https://test.pypi.org/legacy/