name: "Setup Shared Service"
description: "Deploy Dependencies like service_account, role ets..."
author: VelocityLight

inputs:
  PULUMI_ACCESS_TOKEN:
    required: true
    description: "pulumi token [environment variable]"
  PULUMI_CONFIG_PASSPHRASE:
    required: true
    description: "pulumi passphrase [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"

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-shared-service
        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
      with:
        PULUMI_ACCESS_TOKEN: ${{ inputs.PULUMI_ACCESS_TOKEN }}
        PULUMI_CONFIG_PASSPHRASE: ${{ inputs.PULUMI_CONFIG_PASSPHRASE }}
        pulumi_dir: cicd-core/deployments/pulumi/dev-shared-service
        pulumi_stack: ${{ steps.set-target-stack-name.outputs.target_stack_name }}
        pulumi-update-key-value: |
          [
            {"key":"aws:region", "value":"${{ inputs.region }}"},
            {"key":"ee-shared-service:namespace", "value":"${{ inputs.namespace }}"}
          ]
