name: Package

on: workflow_dispatch

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-latest, ubuntu-latest]
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true
      - name: Set up JDK 16.0.1
        uses: actions/setup-java@v2
        with:
          distribution: 'adopt'
          java-version: '16.0.1'
      - name: Show Build Versions
        run: ./gradlew -v
      - name: Cache Gradle packages
        uses: actions/cache@v2
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
          restore-keys: ${{ runner.os }}-gradle
      - name: Build with Gradle
        run: ./gradlew jpackage
      - name: Package zip distribution
        if: ${{ runner.os == 'Windows' }}
        run: ./gradlew packageZipDistribution
      - name: Package tar distribution
        if: ${{ runner.os == 'Linux' }}
        run: ./gradlew packageTarDistribution
      - name: Upload Artifacts
        uses: actions/upload-artifact@v2
        with:
          name: Sparrow Build - ${{ runner.os }}
          path: |
            build/jpackage/*
            !build/jpackage/Sparrow/