name: Deploy review environment

on:
  workflow_dispatch:
    inputs:
      envs_preset:
          description: ENVs preset
          required: false
          default: ""
          type: choice
          options:
            - none
            - gnosis
            - eth
            - eth_sepolia
            - eth_goerli
            - optimism
            - optimism_sepolia
            - polygon
            - rootstock
            - stability
            - zkevm
            - zksync

jobs:
  make_slug:
    name: Make GitHub reference slug
    runs-on: ubuntu-latest
    outputs:
      REF_SLUG: ${{ steps.output.outputs.REF_SLUG }}
    steps:
      -   name: Inject slug/short variables
          uses: rlespinasse/github-slug-action@v4.4.1

      -   name: Set output
          id: output
          run: echo "REF_SLUG=${{ env.GITHUB_REF_NAME_SLUG }}" >> $GITHUB_OUTPUT

  publish_image:
    name: Publish Docker image
    needs: make_slug
    uses: './.github/workflows/publish-image.yml'
    with:
        tags: ghcr.io/blockscout/frontend:review-${{ needs.make_slug.outputs.REF_SLUG }}
        build_args: ENVS_PRESET=${{ inputs.envs_preset }}
    secrets: inherit

  deploy_review:
    name: Deploy frontend
    needs: [ make_slug, publish_image ]
    uses: blockscout/blockscout-ci-cd/.github/workflows/deploy_helmfile.yaml@master
    with:
      appName: review-${{ needs.make_slug.outputs.REF_SLUG }}
      globalEnv: review
      helmfileDir: deploy
      kubeConfigSecret: ci/data/dev/kubeconfig/k8s-dev
      vaultRole: ci-dev
    secrets: inherit
