diff options
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r-- | .github/workflows/release.yml | 136 |
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 }} |