name: Budibase Release

on:
 push:
    branches:
      - master

env:
  POSTHOG_TOKEN: ${{ secrets.POSTHOG_TOKEN }}
  INTERCOM_TOKEN: ${{ secrets.INTERCOM_TOKEN }}
  POSTHOG_URL: ${{ secrets.POSTHOG_URL }}
  SENTRY_DSN: ${{ secrets.SENTRY_DSN }}

jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 14.x
      - run: yarn
      - run: yarn bootstrap
      - run: yarn lint
      - run: yarn build
      - run: yarn test

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: eu-west-1

      - name: Publish budibase packages to NPM
        env:
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          # setup the username and email. I tend to use 'GitHub Actions Bot' with no email by default
          git config user.name "Budibase Release Bot"
          git config user.email "<>"
          echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} >> .npmrc
          yarn release

      - name: 'Get Previous tag'
        id: previoustag
        uses: "WyriHaximus/github-action-get-previous-tag@v1"

      - name: Build/release Docker images
        run: | 
          docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
          yarn build
          yarn build:docker
        env:
          DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
          DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}
          BUDIBASE_RELEASE_VERSION: ${{ steps.previoustag.outputs.tag }}
      
      # - name: Pull values.yaml from budibase-infra
      #   run: | 
      #     curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \                                                                                [c3a7a9d12]
      #     -H 'Accept: application/vnd.github.v3.raw' \
      #     -o values.preprod.yaml \
      #     -L https://api.github.com/repos/budibase/budibase-infra/contents/kubernetes/values.preprod.yaml

      # - name: Deploy to Preprod Environment
      #   uses: deliverybot/helm@v1
      #   with:
      #     release: budibase-preprod
      #     namespace: budibase
      #     chart: charts/budibase
      #     token: ${{ github.token }}
      #     values: |
      #       appVersion: ${{ steps.previoustag.outputs.tag }}
      #     value-files: >-
      #     [
      #       "values.preprod.yaml"
      #     ]
      #   env:
      #     KUBECONFIG_FILE: '${{ secrets.PREPROD_KUBECONFIG }}'