name: Draft Github Release
on:
  # Enable manual run
  workflow_dispatch:
    inputs:
      version:
        description: "Tag to create (e.g. v2.10.0). Must include 'v' and must match pubspec"
        required: true
        default: "v2.10.0"
        type: string

# Declare default permissions as read only.
permissions: read-all

jobs:
  draft-release:
    name: Draft Github release
    runs-on: ubuntu-20.04
    outputs:
      upload_url: ${{ steps.create_release.outputs.upload_url }}
    steps:
      - name: Draft release with release notes
        id: create_release
        uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5
        env:
          GITHUB_TOKEN: ${{ secrets.FLUTTERGALLERYRELEASEBOT_TOKEN }}
        with:
          tag_name: ${{ github.event.inputs.version }}
          draft: true
          prerelease: false
          generate_release_notes: true

  create-build:
    name: Create ${{ matrix.target }} build
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        target: [macOS, Windows, Linux, Android]
        include:
          - os: macos-10.15 # Catalina
            target: macOS
            build_target: macos
            build_path: build/macos/Build/Products/Release
            asset_extension: .zip
            asset_content_type: application/zip
          - os: windows-2019
            target: Windows
            build_target: windows
            build_path: build\windows\runner\Release
            asset_extension: .zip
            asset_content_type: application/zip
          - os: ubuntu-20.04
            target: Linux
            build_target: linux
            build_path: build/linux/x64/release/bundle
            asset_extension: .tar.gz
            asset_content_type: application/gzip
          - os: ubuntu-20.04
            target: Android
            build_target: apk
            build_path: build/app/outputs/flutter-apk
            asset_extension: .apk
            asset_content_type: application/vnd.android.package-archive
      # Disable fail-fast as we want results from all even if one fails.
      fail-fast: false
    needs: draft-release
    steps:
      # Set up Flutter.
      - name: Clone Flutter repository with master channel
        uses: subosito/flutter-action@5e1529bc12adae5b26f30f0a4046ac743d6f0c5d
        with:
          channel: master

      - name: Install Linux dependencies
        if: matrix.target == 'Linux'
        run: |
          sudo apt-get update
          sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev
      - name: Install Android dependencies
        if: matrix.target == 'Android'
        uses: actions/setup-java@e54a62b3df9364d4b4c1c29c7225e57fe605d7dd
        with:
          java-version: "12.x"
      - name: Enable desktop support
        if: matrix.target != 'Android'
        run: |
          flutter config --enable-linux-desktop
          flutter config --enable-macos-desktop
          flutter config --enable-windows-desktop
      - run: flutter doctor -v
      # Checkout gallery code, recreate missing files, and get packages.
      - name: Checkout gallery code
        uses: actions/checkout@d171c3b028d844f2bf14e9fdec0c58114451e4bf
      - run: flutter create .
      - run: flutter pub get

      - name: Configure Keystore for Android
        if: matrix.target == 'Android'
        run: |
          echo "$PLAY_STORE_UPLOAD_KEY" | base64 --decode > app/upload-keystore.jks
          echo "storeFile=upload-keystore.jks" >> key.properties
          echo "keyAlias=$KEYSTORE_KEY_ALIAS" >> key.properties
          echo "storePassword=$KEYSTORE_STORE_PASSWORD" >> key.properties
          echo "keyPassword=$KEYSTORE_KEY_PASSWORD" >> key.properties
        env:
          PLAY_STORE_UPLOAD_KEY: ${{ secrets.PLAY_STORE_UPLOAD_KEY }}
          KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
          KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
          KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }}
        working-directory: android

      # Build the application.
      - run: flutter build -v ${{ matrix.build_target }} --release

      # Package the build.
      - name: Copy VC redistributables to release directory for Windows
        if: matrix.target == 'Windows'
        run: |
          Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\msvcp140.dll') .
          Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140.dll') .
          Copy-Item (vswhere -latest -find 'VC\Redist\MSVC\*\x64\*\vcruntime140_1.dll') .
        working-directory: ${{ matrix.build_path }}
      - name: Rename build for Android
        if: matrix.target == 'Android'
        run: mv app-release.apk $GITHUB_WORKSPACE/flutter_gallery_${{ matrix.target }}.apk
        working-directory: ${{ matrix.build_path }}
      - name: Compress build for Linux
        if: matrix.target == 'Linux'
        run: tar czf $GITHUB_WORKSPACE/flutter_gallery_${{ matrix.target }}.tar.gz *
        working-directory: ${{ matrix.build_path }}
      - name: Compress build for macOS
        if: matrix.target == 'macOS'
        run: ditto -c -k --sequesterRsrc --keepParent Flutter\ Gallery.app $GITHUB_WORKSPACE/flutter_gallery_${{ matrix.target }}.zip
        working-directory: ${{ matrix.build_path }}
      - name: Compress build for Windows
        if: matrix.target == 'Windows'
        run: compress-archive -Path * -DestinationPath ${env:GITHUB_WORKSPACE}\flutter_gallery_${{ matrix.target }}.zip
        working-directory: ${{ matrix.build_path }}

      # Upload the build.
      - name: Add packaged build to release draft
        id: upload_release_asset
        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5
        env:
          GITHUB_TOKEN: ${{ secrets.FLUTTERGALLERYRELEASEBOT_TOKEN }}
        with:
          upload_url: ${{ needs.draft-release.outputs.upload_url }}
          asset_path: ./flutter_gallery_${{ matrix.target }}${{ matrix.asset_extension }}
          asset_name: flutter_gallery_${{ matrix.target }}${{ matrix.asset_extension }}
          asset_content_type: ${{ matrix.asset_content_type }}
          overwrite: true
