diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/dependabot.yml | 7 | ||||
-rw-r--r-- | .github/workflows/doc.yml | 21 | ||||
-rw-r--r-- | .github/workflows/meson.yml | 50 | ||||
-rw-r--r-- | .github/workflows/python-publish.yml | 59 | ||||
-rw-r--r-- | .github/workflows/release.yml | 19 |
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 }} |