summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/dependabot.yml7
-rw-r--r--.github/workflows/doc.yml21
-rw-r--r--.github/workflows/meson.yml50
-rw-r--r--.github/workflows/python-publish.yml59
-rw-r--r--.github/workflows/release.yml19
5 files changed, 90 insertions, 66 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..23c4cb3
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,7 @@
+---
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml
deleted file mode 100644
index 75afbc8..0000000
--- a/.github/workflows/doc.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-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
index c89de99..9006eae 100644
--- a/.github/workflows/meson.yml
+++ b/.github/workflows/meson.yml
@@ -14,15 +14,17 @@ jobs:
steps:
- name: install libraries
run: sudo apt-get install libjson-c-dev
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v1
+ - 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
options: --verbose
action: test
# Preserve meson's log file on failure
- - uses: actions/upload-artifact@v1
+ - uses: actions/upload-artifact@v3
if: failure()
with:
name: Linux_Meson_Testlog
@@ -32,17 +34,41 @@ jobs:
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
+ 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
+ setup-options: --werror --wrap-mode=forcefallback
options: --verbose
action: test
meson-version: 0.61.2
# Preserve meson's log file on failure
- - uses: actions/upload-artifact@v1
+ - uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: Linux_Meson_log
+ path: build/meson-logs/meson-log.txt
+
+ build-static:
+ runs-on: ubuntu-latest
+ steps:
+ - name: install libraries
+ 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 --wrap-mode=forcefallback --default-library=static
+ options: --verbose
+ action: test
+ meson-version: 0.61.2
+ # Preserve meson's log file on failure
+ - uses: actions/upload-artifact@v3
if: failure()
with:
name: Linux_Meson_log
@@ -53,8 +79,10 @@ jobs:
steps:
- name: install libraries
run: sudo apt-get install libjson-c-dev lcov
- - uses: actions/checkout@v2
- - uses: actions/setup-python@v1
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v4
+ with:
+ python-version: '3.x'
- uses: BSFishy/meson-build@v1.0.3
with:
setup-options: -Db_coverage=true --werror
@@ -64,6 +92,6 @@ jobs:
- 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
+ - uses: codecov/codecov-action@v3
with:
fail_ci_if_error: false
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index 7e451ef..dc2b6a6 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -1,67 +1,58 @@
-# 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 ]
+ tags:
+ - '**'
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
+ - uses: actions/checkout@v3
- name: Build sdist
run: pipx run build --sdist
- - uses: actions/upload-artifact@v2
+ - uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
retention-days: 5
- upload_pypi:
- needs: [build_wheels, build_sdist]
+ upload_test_pypi:
+ needs: [build_sdist]
runs-on: ubuntu-latest
- if: github.event_name == 'release' && github.event.action == 'published'
+ if: startsWith(github.ref, 'refs/tags/v')
steps:
- - uses: actions/download-artifact@v2
+ - uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- name: Publish package to TestPyPI
- uses: pypa/gh-action-pypi-publish@release/v1
+ uses: pypa/gh-action-pypi-publish@release/v1.5
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
+
+ upload_pypi:
+ needs: [build_sdist]
+ runs-on: ubuntu-latest
+ if: startsWith(github.ref, 'refs/tags/v')
+ steps:
+ - uses: actions/download-artifact@v3
+ with:
+ name: artifact
+ path: dist
+
+ - name: Publish package to PyPI
+ uses: pypa/gh-action-pypi-publish@release/v1.5
+ with:
+ user: __token__
+ password: ${{ secrets.PYPI_API_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..db84ef5
--- /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@v2
+ - uses: ncipollo/release-action@v1
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}