mirror of
https://github.com/FlipsideCrypto/flow-models.git
synced 2026-02-06 15:21:50 +00:00
89 lines
2.2 KiB
YAML
89 lines
2.2 KiB
YAML
name: dbt_run_adhoc_with_alert
|
|
run-name: ${{ inputs.dbt_command }}
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
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
|
|
default: DBT
|
|
dbt_command:
|
|
type: string
|
|
description: 'DBT Run Command'
|
|
required: true
|
|
|
|
env:
|
|
SLACK_WEBHOOK_URL: "${{ secrets.SLACK_WEBHOOK_URL }}"
|
|
USE_VARS: "${{ vars.USE_VARS }}"
|
|
DBT_PROFILES_DIR: "${{ vars.DBT_PROFILES_DIR }}"
|
|
DBT_VERSION: "${{ vars.DBT_VERSION }}"
|
|
ACCOUNT: "${{ vars.ACCOUNT }}"
|
|
ROLE: "${{ vars.ROLE }}"
|
|
USER: "${{ vars.USER }}"
|
|
PASSWORD: "${{ secrets.PASSWORD }}"
|
|
REGION: "${{ vars.REGION }}"
|
|
DATABASE: "${{ vars.DATABASE }}"
|
|
SCHEMA: "${{ vars.SCHEMA }}"
|
|
WAREHOUSE: "${{ inputs.warehouse }}"
|
|
ENVIRONMENT: "${{ inputs.environment }}"
|
|
DBT_COMMAND: "${{ inputs.dbt_command }}"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
|
|
jobs:
|
|
run_dbt_jobs:
|
|
runs-on: ubuntu-latest
|
|
environment:
|
|
name: workflow_${{ inputs.environment }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.10"
|
|
cache: "pip"
|
|
|
|
- name: install dependencies
|
|
run: |
|
|
pip install -r requirements.txt
|
|
dbt deps
|
|
|
|
- name: Run DBT Jobs
|
|
id: dbt_run_command
|
|
run: |
|
|
start_time=$(date +%s)
|
|
${{ inputs.dbt_command }}
|
|
end_time=$(date +%s)
|
|
elapsed_time=$(expr $end_time - $start_time)
|
|
echo "ELAPSED_TIME=$elapsed_time" >> $GITHUB_ENV
|
|
continue-on-error: true
|
|
|
|
- name: Log run status
|
|
run: echo "DBT_RUN_STATUS=${{ steps.dbt_run_command.outcome }}" >> $GITHUB_ENV
|
|
|
|
- name: Send Notification
|
|
run: |
|
|
python python/dbt_slack_notification.py
|
|
|
|
- name: Store logs
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dbt-logs
|
|
path: logs
|