name: Release SQL Artifacts
# This workflow is triggered on creating tags to master or an opendistro release branch
on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    strategy:
      matrix:
        java: [14]

    name: Build and Release SQL Plugin
    runs-on: [ubuntu-16.04]

    steps:
      - name: Checkout SQL
        uses: actions/checkout@v1

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_STAGING_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_STAGING_SECRET_ACCESS_KEY }}
          aws-region: us-east-1

      - name: Setup Java ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}

      - name: Run build
        run: |
          ./gradlew build buildDeb buildRpm --no-daemon --refresh-dependencies --console=plain -Dbuild.snapshot=false -x doctest:doctest

      - name: Upload to S3
        shell: bash
        run: |
          zip=`ls plugin/build/distributions/*.zip`
          rpm=`ls plugin/build/distributions/*.rpm`
          deb=`ls plugin/build/distributions/*.deb`
          
          # Inject the build number before the suffix
          zip_outfile=`basename ${zip%.zip}-build-${GITHUB_RUN_NUMBER}.zip`
          rpm_outfile=`basename ${rpm%.rpm}-build-${GITHUB_RUN_NUMBER}.rpm`
          deb_outfile=`basename ${deb%.deb}-build-${GITHUB_RUN_NUMBER}.deb`

          s3_prefix="s3://staging.artifacts.opendistroforelasticsearch.amazon.com/snapshots/elasticsearch-plugins/sql/"

          echo "Copying ${zip} to ${s3_prefix}${zip_outfile}"
          aws s3 cp --quiet $zip ${s3_prefix}${zip_outfile}

          echo "Copying ${rpm} to ${s3_prefix}${rpm_outfile}"
          aws s3 cp --quiet $rpm ${s3_prefix}${rpm_outfile}

          echo "Copying ${deb} to ${s3_prefix}${deb_outfile}"
          aws s3 cp --quiet $deb ${s3_prefix}${deb_outfile}