name: Deploy Snowflake Changes

on:
  workflow_dispatch:
  push:
    branches: # Only run on merging a PR to main
      - main
    paths:
      # Only run if permifrost.yml config has been modified
      - 'permifrost.yml'

jobs:
  tundri:
    name: tundri setup and run
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.10'

      - name: Install tundri
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt

      - name: Setup Snowflake Private Key
        run: |
          # encoded with command: base64 -w 0 key.p8 > encoded_key.txt
          echo "${{ secrets.PERMISSION_BOT_PRIVATE_KEY_ENCODED_BASE64 }}" | base64 --decode > $HOME/snowflake_permifrost.p8
          chmod 600 $HOME/snowflake_permifrost.p8
          echo "PERMISSION_BOT_KEY_PATH=$HOME/snowflake_permifrost.p8" >> $GITHUB_ENV

      - name: Run tundri
        env:
          PERMISSION_BOT_ACCOUNT: ${{ secrets.SNOWFLAKE_ACCOUNT }}
          PERMISSION_BOT_DATABASE: PERMIFROST
          PERMISSION_BOT_USER: PERMIFROST
          PERMISSION_BOT_ROLE: SECURITYADMIN
          PERMISSION_BOT_WAREHOUSE: ADMIN
          PERMISSION_BOT_KEY_PASSPHRASE: ${{ secrets.PERMISSION_BOT_KEY_PASSPHRASE }}
        run: tundri run --filepath permifrost.yml
