name: "AWS Login"
description: "Login to AWS and access to ECR/EKS..."
author: VelocityLight

inputs:
  AWS_ROLE_ARN:
    required: true
    description: "aws role arn [environment variable]"
  AWS_REGION:
    required: true
    description: "aws region [environment variable]"

  ecr_repo:
    required: false
    description: "access to ECR repository if ecr_repo has value"
  eks_cluster:
    required: false
    description: "access to EKS cluster if eks_cluster has value"

outputs:
  ecr_registry:
    description: "ECR Registry"
    value: ${{ steps.login-ecr.outputs.registry }}

runs:
  using: "composite"

  steps:
    - name: install AWS-Cli
      run: |
        curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
        unzip -q awscliv2.zip
        sudo ./aws/install --update
      shell: bash

    - name: install kubectl
      uses: azure/setup-kubectl@v1

    - name: login to ECR
      if: "${{ inputs.ecr_repo != '' }}"
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1
      env:
        AWS_ROLE_ARN: ${{ inputs.AWS_ROLE_ARN }}
        AWS_REGION: ${{ inputs.AWS_REGION }}

    - name: make sure the image repos exist
      if: "${{ inputs.ecr_repo != '' }}"
      run: |
        aws ecr describe-repositories --repository-names ${{ inputs.ecr_repo }} || aws ecr create-repository --repository-name ${{ inputs.ecr_repo }} || exit 1
      shell: bash
      env:
        AWS_ROLE_ARN: ${{ inputs.AWS_ROLE_ARN }}
        AWS_REGION: ${{ inputs.AWS_REGION }}

    - name: login to EKS
      if: "${{ inputs.eks_cluster != '' }}"
      run: |
        aws eks update-kubeconfig --region ${{ inputs.aws_region }} --name ${{ inputs.eks_cluster }}
      shell: bash
      env:
        AWS_ROLE_ARN: ${{ inputs.AWS_ROLE_ARN }}
        AWS_REGION: ${{ inputs.AWS_REGION }}
