name: Github pre-release

on: workflow_dispatch
#   push:
#     branches: [ master ]
#   pull_request:
#     branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: set up JDK 1.8
      uses: actions/setup-java@v2
      with:
        distribution: 'zulu'
        java-version: '8'

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew

    - name: Build Github unsigned pre-release apk
      run: ./gradlew assembleGithubRelease --stacktrace --project-prop pre --project-prop split

    - name: Sign APK
      uses: ammargitham/sign-android-release@v1.1.1
      # ID used to access action output
      id: sign_app
      with:
        releaseDirectory: app/build/outputs/apk/github/release
        signingKeyBase64: ${{ secrets.SIGNING_KEY }}
        alias: ${{ secrets.ALIAS }}
        keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
        keyPassword: ${{ secrets.KEY_PASSWORD }}

    - name: Get current date and time
      id: date
      run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"

    # Create artifact
    - name: Create apk artifact
      uses: actions/upload-artifact@v2
      with:
        name: barinsta_pre-release_${{ steps.date.outputs.date }}
        # path: ${{steps.sign_app.outputs.signedReleaseFile}}
        path: app/build/outputs/apk/github/release/*-signed.apk

    # Send success notification
    - name: Send success Telegram notification
      if: ${{ success() }}
      uses: appleboy/telegram-action@master
      with:
        to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }}
        token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }}
        message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} completed successfully.\nURL: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
        # document: ${{steps.sign_app.outputs.signedReleaseFile}}
        document: app/build/outputs/apk/github/release/*-signed.apk

    # Send failure notification
    - name: Send failure Telegram notification
      if: ${{ failure() }}
      uses: appleboy/telegram-action@master
      with:
        to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }}
        token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }}
        message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} failed.\nURL: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
