Browse Source

Release action

Casper van der Wel 1 year ago
parent
commit
44a6967eae
1 changed files with 59 additions and 0 deletions
  1. 59 0
      .github/workflows/release.yml

+ 59 - 0
.github/workflows/release.yml

@@ -0,0 +1,59 @@
+name: Build and publish
+
+# Run on PR requests. And on master itself.
+on:
+  push:
+    branches:
+      - main  # just build the sdist skip release
+    tags:
+      - "*"
+  pull_request:  # also build on PRs touching some files
+    paths:
+      - ".github/workflows/release.yml"
+      - "MANIFEST.in"
+      - "pyproject.toml"
+
+jobs:
+  build:
+    name: Build
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout source
+        uses: actions/checkout@v3
+
+      - name: Set up Python
+        uses: actions/setup-python@v4
+        with:
+          python-version: "3.10"
+
+      - name: Build a source tarball
+        run: |
+          python -m pip install build
+          python -m build
+
+      - uses: actions/upload-artifact@v3
+        with:
+          path: ./dist/*
+          retention-days: 5
+
+  publish:
+    name: Publish on GitHub and PyPI
+    needs: [build]
+    runs-on: ubuntu-latest
+    # release on every tag
+    if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')
+    steps:
+      - uses: actions/download-artifact@v3
+        with:
+          name: artifact
+          path: dist
+
+      - name: Upload Github release
+        id: upload-release-asset
+        uses: softprops/action-gh-release@v1
+
+      - name: Upload Release Assets to PyPI
+        uses: pypa/gh-action-pypi-publish@release/v1
+        with:
+          password: ${{ secrets.PYPI_UPLOAD_TOKEN }}