Skip to content

Merge pull request #189 from partyoffice/dependabot/go_modules/github… #138

Merge pull request #189 from partyoffice/dependabot/go_modules/github…

Merge pull request #189 from partyoffice/dependabot/go_modules/github… #138

Workflow file for this run

name: Release
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Get merged pull request
id: merged-pr
uses: remihq/action-get-merged-pull-request@v1
with:
github_token: ${{ github.token }}
- name: Checkout # Don't use actions/checkout@v2 because we need the tags
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
run: |
git clone https://github.com/partyoffice/spotifete.git ./
git checkout -f master
- name: Set release version
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
id: release-version
env:
PR_TITLE: ${{ steps.merged-pr.outputs.title }}
PR_LABELS: ${{ steps.merged-pr.outputs.labels }}
run: |
VERSION_TAG=$(git describe --tags)
VERSION_MAJOR=$(echo $VERSION_TAG | sed -r 's/[^0-9]*([0-9]+)[.]([0-9]+)[.]([0-9])+.*/\1/')
VERSION_MINOR=$(echo $VERSION_TAG | sed -r 's/[^0-9]*([0-9]+)[.]([0-9]+)[.]([0-9])+.*/\2/')
VERSION_PATCH=$(echo $VERSION_TAG | sed -r 's/[^0-9]*([0-9]+)[.]([0-9]+)[.]([0-9])+.*/\3/')
if [[ $PR_TITLE = Feature:* ]] || [[ $PR_LABELS = *feature* ]]
then
RELEASE_VERSION_MAJOR=$VERSION_MAJOR
RELEASE_VERSION_MINOR=$((VERSION_MINOR+1))
RELEASE_VERSION_PATCH=0
else
RELEASE_VERSION_MAJOR=$VERSION_MAJOR
RELEASE_VERSION_MINOR=$VERSION_MINOR
RELEASE_VERSION_PATCH=$((VERSION_PATCH+1))
fi
RELEASE_VERSION=$RELEASE_VERSION_MAJOR.$RELEASE_VERSION_MINOR.$RELEASE_VERSION_PATCH
echo "::set-output name=release_version::$RELEASE_VERSION"
- name: Create release tag
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
run: |
git tag v${{ steps.release-version.outputs.release_version }}
git push https://Nikos410:${{ secrets.GITHUB_TOKEN }}@github.com/partyoffice/spotifete.git v${{ steps.release-version.outputs.release_version }}
- name: Login to Docker Hub
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set up Docker Build
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
id: buildx
uses: docker/setup-buildx-action@v1
- name: Build and push
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
id: docker_build
uses: docker/build-push-action@v2
with:
context: ./
file: ./Dockerfile
push: true
tags: nikos410/spotifete:${{ steps.release-version.outputs.release_version }},nikos410/spotifete:latest
- name: Publish release
if: "!contains(steps.merged-pr.outputs.labels, 'dependencies') && !contains(steps.merged-pr.outputs.labels, 'no-release')"
id: publish-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.release-version.outputs.release_version }}
release_name: Release v${{ steps.release-version.outputs.release_version }}
body: ${{ steps.merged-pr.outputs.title }}
draft: false
prerelease: false