name: Build and publish to Dialimpics beta
on:
  push:
    tags:
      - 'v*'
jobs:
  push_to_registry:
    name: Build Docker image and push it to the registry
    runs-on: ubuntu-latest
    steps:
      - name: Check out the repo
        uses: actions/checkout@v2
      - name: Set env
        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
      - name: Login to ECR
        id: ecr
        uses: elgohr/ecr-login-action@master
        with:
          access_key: ${{ secrets.ACCESS_KEY_ID }}
          secret_access_key: ${{ secrets.SECRET_ACCESS_KEY }}
          region: eu-west-1
      - name: Publish to Registry
        uses: elgohr/Publish-Docker-Github-Action@master
        with:
          name: dialimpics-front
          username: ${{ steps.ecr.outputs.username }}
          password: ${{ steps.ecr.outputs.password }}
          registry: ${{ steps.ecr.outputs.registry }}
          tags: 'latest,${{ env.RELEASE_VERSION }}'
          dockerfile: Dockerfile
      - name: Deploy dialimpics Front
        uses: colbyhill21/Rancher-Action@1.1
        with:
          token: ${{ secrets.RANCHER_TOKEN }}
          context: ${{ secrets.RANCHER_CONTEXT }}
          url: ${{ secrets.RANCHER_URL }}
          args: |
            set image deployment/front-deploy-beta front-beta="402083338966.dkr.ecr.eu-west-1.amazonaws.com/dialimpics-front:${{ env.RELEASE_VERSION }}" --record -n dialimpics-beta
      - name: Read CHANGELOG
        uses: BinPar/read-conventional-commit-changelog@v1
        id: changelog
      - name: Beta update Success
        uses: rjstone/discord-webhook-notify@v1
        if: success()
        with:
          severity: info
          details: Version ${{ env.RELEASE_VERSION }} of ${{ github.event.repository.name }} is published in beta environment.\n**CHANGELOG:**\n${{ steps.changelog.outputs.version-changelog }}\nCheck it at https://dialimpics-beta.binpar.cloud
          webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
          avatarUrl: ${{ secrets.DISCORD_AVATAR_URL }}
      - name: Beta update Failure
        uses: rjstone/discord-webhook-notify@v1
        if: failure()
        with:
          severity: error
          details: Release Failed generating version ${{ env.RELEASE_VERSION }} of ${{ github.event.repository.name }}!
          webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
          avatarUrl: ${{ secrets.DISCORD_AVATAR_URL }}
      - name: Beta update Cancelled
        uses: rjstone/discord-webhook-notify@v1
        if: cancelled()
        with:
          severity: warn
          details: Release Cancelled!
          webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
          avatarUrl: ${{ secrets.DISCORD_AVATAR_URL }}
