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-latest
    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-latest
            target: macOS
            build_target: macos
            build_path: build/macos/Build/Products/Release
            asset_extension: .zip
            asset_content_type: application/zip
          - os: windows-latest
            target: Windows
            build_target: windows
            build_path: build\windows\runner\Release
            asset_extension: .zip
            asset_content_type: application/zip
          - os: ubuntu-latest
            target: Linux
            build_target: linux
            build_path: build/linux/x64/release/bundle
            asset_extension: .tar.gz
            asset_content_type: application/gzip
          - os: ubuntu-latest
            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@dbf1fa04f4d2e52c33185153d06cdb5443aa189d
        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@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc
        with:
          java-version: "12.x"
          distribution: temurin
      - 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@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
      - 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
