name: Get AWS credential
author: Jeff Kim
description: 'Get aws crentials by aws assume role'
inputs:
  region:
    description: 'aws region'
    required: false
    default: 'ap-northeast-2'
  role-arn:
    description: 'aws role arn'
    required: false
    default: 'arn:aws:iam::069889557760:role/GithubActions'
  role-session-name:
    description: 'aws assume role session name'
    required: false
    default: 'SessionForGhActions'
  duration:
    description: 'session duration time. default is 30 mins'
    required: false
    default: '1800'
outputs:
  aws-account-id:
    description: 'The AWS account ID for the provided credentials'
    value: ${{ steps.credentials.outputs.aws-account-id }}
runs:
  using: "composite"
  steps:
    - name: change the session name length
      shell: bash
      id: var
      run: |
        echo "${{ inputs.role-session-name }}"
        SESSION=${{ inputs.role-session-name }}
        NAME=${SESSION:0:63}
        echo $NAME
        echo "SESSION_NAME=$(echo $NAME)" >> GITHUB_OUTPUT
    - name: Configure AWS Credentials
      id: credentials
      uses: aws-actions/configure-aws-credentials@v4
      with:
        aws-region: ${{ inputs.region }}
        role-to-assume: ${{ inputs.role-arn }}
        role-session-name: ${{ steps.var.outputs.SESSION_NAME }}
        role-duration-seconds: ${{ inputs.duration }}
