name: Github Release mobile android
author: Bolt Lee
description: 'Github release'
inputs:
  GITHUB_TOKEN:
    description: 'Enter PAT'
    required: true
    default: ''
  ENVIRONMENT:
    description: 'Enter environment'
    required: true
    default: ''
  upload_url:
    description: 'Enter upload_url'
    required: true
    default: ''
outputs:
  VERSION_NAME:
    description: 'Get VERSION_NAME'
    value: ${{ steps.version.outputs.VERSION_NAME }}
  VERSION_CODE:
    description: 'Get VERSION_CODE'
    value: ${{ steps.version.outputs.VERSION_CODE }}

runs:
  using: "composite"
  steps:
  - name: Retrieve Version
    id: version
    shell: bash
    run: |
      echo "VERSION_NAME=$(${{github.workspace}}/gradlew -q printVersionName)" >> $GITHUB_OUTPUT
      echo "VERSION_CODE=$(${{github.workspace}}/gradlew -q printVersionCode)" >> $GITHUB_OUTPUT

  - name: getApkName
    id: FileName
    shell: bash
    run: |
      ENV=${{ inputs.ENVIRONMENT }}

      if [[ "${ENV}" == "dev" ]] || [[ "${ENV}" == "qa" ]] || [[ "${ENV}" == "dev2" ]] || [[ "${ENV}" == "qa2" ]]; then
        FilePath=$(find app/build/outputs/apk/${{ inputs.ENVIRONMENT }}/debug/*.apk)
        echo "path=$(echo $FilePath)" >> $GITHUB_OUTPUT
        NAME=${{ github.repository }}_${{steps.version.outputs.VERSION_NAME}}_${{steps.version.outputs.VERSION_CODE}}_${{ inputs.ENVIRONMENT }}.apk
        echo "asset_name=$(echo $NAME)" >> $GITHUB_OUTPUT
        echo $path
      elif [[ "${ENV}" == "stage" ]]; then
        FilePath=$(find app/build/outputs/apk/stage/release/*.apk)
        echo "path=$(echo $FilePath)" >> $GITHUB_OUTPUT
        NAME=${{ github.repository }}_${{steps.version.outputs.VERSION_NAME}}_${{steps.version.outputs.VERSION_CODE}}_${{ inputs.ENVIRONMENT }}.apk
        echo "asset_name=$(echo $NAME)" >> $GITHUB_OUTPUT
        echo $path
      elif [[ "${ENV}" == "prod" ]]; then
        FilePath=$(find app/build/outputs/bundle/prodRelease/*.aab)
        echo "path=$(echo $FilePath)" >> $GITHUB_OUTPUT
        NAME=${{ github.repository }}_${{steps.version.outputs.VERSION_NAME}}_${{steps.version.outputs.VERSION_CODE}}_${{ inputs.ENVIRONMENT }}.aab
        echo "asset_name=$(echo $NAME)" >> $GITHUB_OUTPUT
        echo $path
      fi
  - name: Upload Release Asset
    id: upload-release-asset
    uses: actions/upload-release-asset@v1
    env:
      GITHUB_TOKEN: ${{ inputs.GITHUB_TOKEN }}
    with:
      upload_url: ${{ inputs.upload_url }}
      asset_path: ${{steps.FileName.outputs.path}}
      asset_name: ${{ steps.FileName.outputs.asset_name }}
      asset_content_type: application/zip
