name: dbt_run_adhoc
run-name: dbt_run_adhoc


on:
  workflow_dispatch:
    branches:
      - "main"
    inputs:
      environment:
        type: choice 
        description: DBT Run Environment
        required: true
        options:
          - dev
          - prod
        default: dev
      warehouse:
        type: choice 
        description: Snowflake warehouse
        required: true 
        options:
          - DBT
          - DBT_CLOUD
          - DBT_EMERGENCY
      dbt_command:
        type: string
        description: 'DBT Run Command'
        required: true

env:
  DBT_PROFILES_DIR: "${{ secrets.DBT_PROFILES_DIR }}"

  ACCOUNT: "${{ secrets.ACCOUNT }}"
  ROLE: "${{ secrets.ROLE }}"
  USER: "${{ secrets.USER }}"
  PASSWORD: "${{ secrets.PASSWORD }}"
  REGION: "${{ secrets.REGION }}"
  DATABASE: "${{ secrets.DATABASE }}"
  WAREHOUSE: "${{ inputs.warehouse }}"
  SCHEMA: "${{ secrets.SCHEMA }}"


jobs:
  run_dbt_jobs:
    runs-on: ubuntu-latest
    environment: 
      name: workflow_${{ inputs.environment }}

    steps:
      - uses: actions/checkout@v3

      - uses: actions/setup-python@v1
        with:
          python-version: "3.7.x"

      - name: install dependencies
        run: |
          pip3 install dbt-snowflake==${{ secrets.DBT_VERSION }} cli_passthrough requests click
          dbt deps
      - name: Run DBT Jobs
        run: |
          ${{ inputs.dbt_command }}