name: Gradle publish

on:
  workflow_dispatch:
  release:
    types: [ created ]

jobs:
  publish:
    environment:
      name: publish
    strategy:
      matrix:
        os: [ macOS-latest, windows-latest ]
    runs-on: ${{matrix.os}}
    steps:
      - name: Checkout the repo
        uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: DeLaGuardo/setup-graalvm@4.0
        with:
          graalvm: 21.2.0
          java: java11
          arch: amd64
      - name: Cache gradle
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Cache konan
        uses: actions/cache@v2
        with:
          path: ~/.konan
          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Publish Windows Artifacts
        if: matrix.os == 'windows-latest'
        shell: cmd
        run: >
          ./gradlew release --no-daemon --build-cache -Ppublishing.enabled=true
          -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
          -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}
      - name: Publish Mac Artifacts
        if: matrix.os == 'macOS-latest'
        run: >
          ./gradlew release --no-daemon --build-cache -Ppublishing.enabled=true -Ppublishing.platform=macosX64
          -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }}
          -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }}