name: "Setup Dev Traffic Routers"
description: "Deploy ingresses and configure the related aws resources. **Depends on pulumi-cli and aws-cli installed in advance.**"
author: YochaLyc

inputs:
  PULUMI_ACCESS_TOKEN:
    required: true
    description: "pulumi token [environment variable]"
  PULUMI_CONFIG_PASSPHRASE:
    required: true
    description: "pulumi passphrase [environment variable]"
  GIT_ACTION_BOT:
    required: true
    description: "git [environment variable]"
  namespace:
    required: true
    description: "The target namespace to initialize the ingresses."
  actorGithubID:
    required: true
    description: "The github id of who triggers the action."
  region:
    required: false
    default: "us-west-2"
  awsDNSZone:
    required: false
    default: "shared.aws.tidbcloud.com"
  router53ZoneID:
    required: false
    default: "Z329W86VRKILYT"

outputs:
  domain:
    description: "The domain to receive test requests."
    value: ${{ steps.pulumi-up.outputs.domain }}

runs:
  using: "composite"
  steps:
    - name: Compose Stack Name
      id: set-target-stack-name
      run: |
        echo "::set-output name=target_stack_name::personal-stack-${{ inputs.actorGithubID }}"
      shell: bash

    - name: Copy And Select Pulumi Stack
      uses: ./cicd-core/components/tools/pulumi-copy-stack
      with:
        PULUMI_ACCESS_TOKEN: ${{ inputs.PULUMI_ACCESS_TOKEN }}
        PULUMI_CONFIG_PASSPHRASE: ${{ inputs.PULUMI_CONFIG_PASSPHRASE }}
        pulumi_dir: cicd-core/deployments/pulumi/dev-traffic-router
        source_stack_name: dev
        target_stack_name: ${{ steps.set-target-stack-name.outputs.target_stack_name }}

    - name: Deploy
      uses: ./cicd-core/components/cd/deploy-with-pulumi
      id: pulumi-up
      with:
        PULUMI_ACCESS_TOKEN: ${{ inputs.PULUMI_ACCESS_TOKEN }}
        PULUMI_CONFIG_PASSPHRASE: ${{ inputs.PULUMI_CONFIG_PASSPHRASE }}
        pulumi_dir: cicd-core/deployments/pulumi/dev-traffic-router
        pulumi_stack: ${{ steps.set-target-stack-name.outputs.target_stack_name }}
        pulumi-update-key-value: |
          [
            {"key":"aws:region", "value":"${{ inputs.region }}"},
            {"key":"ee-infra:gitToken", "value":"${{ inputs.GIT_ACTION_BOT }}", "secret":"1"},
            {"key":"ee-infra:namespace", "value":"${{ inputs.namespace }}"},
            {"key":"ee-infra:router53ZoneID", "value":"${{ inputs.router53ZoneID }}"},
            {"key":"ee-infra:awsDNSZone", "value":"${{ inputs.awsDNSZone }}"}
          ]
