summaryrefslogtreecommitdiffstats
path: root/.github/workflows/release.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r--.github/workflows/release.yml136
1 files changed, 136 insertions, 0 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..70cce9c
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,136 @@
+---
+name: "Tag & Release management"
+on:
+ push:
+ # Sequence of patterns matched against refs/tags
+ tags:
+ - 'v[0-9]+.[0-9]+.[0-9]+' # Push events to matching v*, i.e. v1.0, v20.15.10
+jobs:
+ # release:
+ # name: Create Github Release
+ # runs-on: ubuntu-latest
+ # steps:
+ # - name: Checkout code
+ # uses: actions/checkout@v3
+ # with:
+ # fetch-depth: 0
+
+ # - name: Generate Changelog
+ # run: |
+ # sudo apt update && sudo apt install zsh
+ # export TAG_CURRENT=$(git describe --abbrev=0 --tags)
+ # export TAG_PREVIOUS=$(git describe --abbrev=0 --tags `git rev-list --tags --skip=1 --max-count=1`)
+ # echo "Previous tag is: ${TAG_PREVIOUS}"
+ # echo "Current tag is: ${TAG_CURRENT}"
+ # zsh .github/changelog.sh ${TAG_CURRENT} ${TAG_PREVIOUS} md > CHANGELOG.md
+ # cat CHANGELOG.md
+
+ # - name: Release on Github
+ # uses: softprops/action-gh-release@v1
+ # with:
+ # draft: false
+ # body_path: CHANGELOG.md
+
+ pypi:
+ name: Publish version to Pypi servers
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install setuptools wheel build
+
+ - name: Build package
+ run: |
+ python -m build
+
+ - name: Publish package to TestPyPI
+ uses: pypa/gh-action-pypi-publish@release/v1
+ with:
+ user: __token__
+ password: ${{ secrets.PYPI_API_TOKEN }}
+
+ docker:
+ name: Docker Image Build
+ runs-on: ubuntu-latest
+ needs: [pypi]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Docker meta for TAG
+ id: meta
+ uses: docker/metadata-action@v4
+ with:
+ images:
+ ${{ secrets.DOCKER_IMAGE }}
+ ghcr.io/${{ secrets.DOCKER_IMAGE }}
+ tags: |
+ type=semver,pattern={{raw}}
+ type=raw,value=latest
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ file: Dockerfile
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+
+ docker_in_docker:
+ name: Docker Image Build with Docker support
+ runs-on: ubuntu-latest
+ needs: [docker]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Docker meta for TAG
+ id: meta
+ uses: docker/metadata-action@v4
+ with:
+ images:
+ ${{ secrets.DOCKER_IMAGE }}
+ ghcr.io/${{ secrets.DOCKER_IMAGE }}
+ tags: |
+ type=semver,pattern={{raw}}-dind
+ type=raw,value=latest-dind
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Build and push
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ file: Dockerfile.docker
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}