name: "Publish binary aqua"

on:
  workflow_dispatch:
    inputs:
      runs-on:
        type: string
        required: true
      arch:
        type: string
        required: true
      os:
        type: string
        required: true
      static:
        type: boolean
        required: true
  workflow_call:
    inputs:
      runs-on:
        type: string
        required: true
      arch:
        type: string
        required: true
      os:
        type: string
        required: true
      static:
        type: boolean
        required: true

jobs:
  build:
    name: "Publish aqua-native"
    runs-on: ${{ inputs.runs-on }}
    timeout-minutes: 10

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

      - uses: graalvm/setup-graalvm@v1
        with:
          version: '22.3.1'
          java-version: '17'
          set-java-home: true
          components: 'native-image'
          github-token: ${{ secrets.GITHUB_TOKEN }}

      - uses: coursier/cache-action@v6

      - uses: coursier/setup-action@v1
        with:
          apps: sbt

      - name: build
        run: sbt "cli/GraalVMNativeImage/packageBin"
        env:
          COMPILE_STATIC: ${{ inputs.static }}

      - uses: actions/upload-artifact@v3
        with:
          name: aqua-${{ inputs.os }}-${{ inputs.arch }}
          path: cli/cli/.jvm/target/graalvm-native-image/cli

      - uses: actions/upload-artifact@v3
        with:
          name: aqua-${{ inputs.os }}-${{ inputs.arch }}
          path: cli/cli/.jvm/target/graalvm-native-image/cli