---
name: Release

on:
  workflow_run:
    types:
      - completed
    workflows:
      - "ci"
    branches:
      - release/*
jobs:
  get-tag:
    name: Get tag
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}
    outputs:
      tag: ${{ steps.get-tag-step.outputs.tag }}
    steps:
      - name: Get tag
        run: |
          branch=${{github.event.workflow_run.head_branch}}
          echo tag=${branch#release/} >> $GITHUB_OUTPUT
        id: get-tag-step

  check-gomod-deps:
    needs: get-tag
    uses: networkservicemesh/.github/.github/workflows/check-gomod-deps.yaml@main
    with:
      tag: ${{ needs.get-tag.outputs.tag }}

  create-release:
    needs: [get-tag, check-gomod-deps]
    uses: networkservicemesh/.github/.github/workflows/release.yaml@main
    secrets:
      token: ${{ secrets.NSM_BOT_GITHUB_TOKEN }}

  docker:
    needs: [get-tag, check-gomod-deps]
    uses: networkservicemesh/.github/.github/workflows/docker-release.yaml@main
    with:
      tag: ${{ needs.get-tag.outputs.tag }}
    secrets:
      token: ${{ secrets.GITHUB_TOKEN }}

  update-deployments-k8s:
    name: Update deployments-k8s
    needs: [get-tag, create-release]
    if: ${{ github.repository != 'networkservicemesh/cmd-template' }}
    uses: networkservicemesh/.github/.github/workflows/release-deployments.yaml@main
    with:
      tag: ${{ needs.get-tag.outputs.tag }}
    secrets:
      token: ${{ secrets.NSM_BOT_GITHUB_TOKEN }}