Skip to content

Commit 6d4819b

Browse files
committed
updated infra
1 parent 5d0cb45 commit 6d4819b

3 files changed

Lines changed: 25 additions & 78 deletions

File tree

.github/workflows/databricks-dab.yml

Lines changed: 13 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ env:
3030
DATABRICKS_AWS_ACCOUNT_ID: ${{ secrets.DATABRICKS_AWS_ACCOUNT_ID }}
3131
DATABRICKS_CLIENT_ID: ${{ secrets.DATABRICKS_CLIENT_ID }}
3232
DATABRICKS_CLIENT_SECRET: ${{ secrets.DATABRICKS_CLIENT_SECRET }}
33-
3433

3534
jobs:
3635

@@ -45,11 +44,11 @@ jobs:
4544
DATABRICKS_CLIENT_SECRET: ${{ secrets.DATABRICKS_CLIENT_SECRET }}
4645

4746
outputs:
48-
workspace_id: ${{ steps.parse-workspace.outputs.workspace_id }}
49-
workspace_url: ${{ steps.set-workspace-url.outputs.workspace_url }}
50-
deployment_name: ${{ steps.parse-workspace.outputs.deployment_name }}
47+
workspace_id: ${{ steps.stackql-deploy.outputs.workspace_id }}
48+
workspace_url: ${{ steps.stackql-deploy.outputs.workspace_url }}
49+
deployment_name: ${{ steps.stackql-deploy.outputs.deployment_name }}
5150
environment: ${{ steps.set-env.outputs.environment }}
52-
51+
5352
steps:
5453
- name: Checkout code
5554
uses: actions/checkout@v4
@@ -65,83 +64,22 @@ jobs:
6564
echo "stack_env=prd" >> $GITHUB_OUTPUT
6665
fi
6766
68-
- name: setup-stackql
69-
uses: stackql/setup-stackql@v2.2.3
70-
71-
- name: Pull Databricks provider
72-
id: registry-pull
73-
uses: stackql/stackql-exec@v2.2.3
74-
with:
75-
is_command: 'true'
76-
query: "REGISTRY PULL databricks_account;"
77-
78-
- name: Deploy Infrastructure with StackQL
79-
uses: stackql/stackql-deploy-action@v1.0.2
67+
- name: Deploy infrastructure with StackQL
68+
id: exec-stackql-deploy
69+
uses: stackql/stackql-deploy-action@v1.0.3
8070
with:
8171
command: 'build'
8272
stack_dir: 'infrastructure'
8373
stack_env: ${{ steps.set-env.outputs.stack_env }}
8474
env_vars: AWS_REGION=${{ secrets.AWS_REGION }},AWS_ACCOUNT_ID=${{ secrets.AWS_ACCOUNT_ID }},DATABRICKS_ACCOUNT_ID=${{ secrets.DATABRICKS_ACCOUNT_ID }},DATABRICKS_AWS_ACCOUNT_ID=${{ secrets.DATABRICKS_AWS_ACCOUNT_ID }}
85-
# log_level: DEBUG
75+
output_file: 'deployment-outputs.json'
8676

87-
- name: Get and parse workspace outputs
88-
id: parse-workspace
77+
- name: Set outputs from stackql-deploy exports
78+
id: stackql-deploy
8979
run: |
90-
# Execute query and capture output
91-
FULL_OUTPUT=$(stackql exec "SELECT
92-
workspace_name,
93-
workspace_id,
94-
deployment_name,
95-
workspace_status
96-
FROM databricks_account.provisioning.workspaces
97-
WHERE account_id = '${{ secrets.DATABRICKS_ACCOUNT_ID }}'
98-
AND workspace_name = 'databricks-lakeflow-jobs-demo-${{ steps.set-env.outputs.stack_env }}-workspace'
99-
" --output json 2>&1)
100-
101-
echo "Full output:"
102-
echo "$FULL_OUTPUT"
103-
104-
# Extract just the JSON line (starts with '[' and ends with ']')
105-
RESULT=$(echo "$FULL_OUTPUT" | grep -oP '^\[.*\]$' | head -1)
106-
107-
echo "Extracted JSON: $RESULT"
108-
109-
# Validate we got JSON
110-
if [ -z "$RESULT" ]; then
111-
echo "Error: Could not extract JSON from output"
112-
exit 1
113-
fi
114-
115-
# Parse and set outputs
116-
echo "workspace_name=$(echo "$RESULT" | jq -r '.[0].workspace_name')" >> $GITHUB_OUTPUT
117-
echo "workspace_id=$(echo "$RESULT" | jq -r '.[0].workspace_id')" >> $GITHUB_OUTPUT
118-
echo "deployment_name=$(echo "$RESULT" | jq -r '.[0].deployment_name')" >> $GITHUB_OUTPUT
119-
echo "workspace_status=$(echo "$RESULT" | jq -r '.[0].workspace_status')" >> $GITHUB_OUTPUT
120-
121-
- name: Set workspace URL
122-
id: set-workspace-url
123-
run: |
124-
DEPLOYMENT_NAME="${{ steps.parse-workspace.outputs.deployment_name }}"
125-
WORKSPACE_URL="https://${DEPLOYMENT_NAME}.cloud.databricks.com"
126-
echo "workspace_url=${WORKSPACE_URL}" >> $GITHUB_OUTPUT
127-
echo "Workspace URL: ${WORKSPACE_URL}"
128-
129-
- name: Display workspace info
130-
run: |
131-
echo "📦 Workspace provisioned:"
132-
echo " Name: ${{ steps.parse-workspace.outputs.workspace_name }}"
133-
echo " ID: ${{ steps.parse-workspace.outputs.workspace_id }}"
134-
echo " Status: ${{ steps.parse-workspace.outputs.workspace_status }}"
135-
echo " Deployment: ${{ steps.parse-workspace.outputs.deployment_name }}"
136-
echo " URL: ${{ steps.set-workspace-url.outputs.workspace_url }}"
137-
138-
echo "## 📦 Workspace provisioned using StackQL:" >> $GITHUB_STEP_SUMMARY
139-
echo "" >> $GITHUB_STEP_SUMMARY
140-
echo "**Stack:** databricks-lakeflow-jobs-demo" >> $GITHUB_STEP_SUMMARY
141-
echo "**Environment:** ${{ steps.set-env.outputs.stack_env }}" >> $GITHUB_STEP_SUMMARY
142-
echo "**Workspace:** [${{ steps.parse-workspace.outputs.workspace_name }}](${{ steps.set-workspace-url.outputs.workspace_url }})" >> $GITHUB_STEP_SUMMARY
143-
echo "**Workspace ID:** ${{ steps.parse-workspace.outputs.workspace_id }}" >> $GITHUB_STEP_SUMMARY
144-
echo "**Status:** ${{ steps.parse-workspace.outputs.workspace_status }}" >> $GITHUB_STEP_SUMMARY
80+
echo "workspace_id=$(jq -r '.databricks_workspace_id' deployment-outputs.json)" >> $GITHUB_OUTPUT
81+
echo "workspace_url=$(jq -r '.databricks_workspace_url' deployment-outputs.json)" >> $GITHUB_OUTPUT
82+
echo "deployment_name=$(jq -r '.databricks_deployment_name' deployment-outputs.json)" >> $GITHUB_OUTPUT
14583
14684
validate:
14785
name: Validate DAB Configuration

infrastructure/resources/databricks_account/workspace.iql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ SELECT
2525
SELECT
2626
'{{ workspace_name }}' AS databricks_workspace_name,
2727
workspace_id AS databricks_workspace_id,
28-
deployment_name AS databricks_deployment_name
28+
deployment_name AS databricks_deployment_name,
29+
workspace_status AS databricks_workspace_status,
30+
'https://' || deployment_name || '.cloud.databricks.com' AS databricks_workspace_url
2931
FROM databricks_account.provisioning.workspaces
3032
WHERE account_id = '{{ databricks_account_id }}'
3133
AND workspace_name = '{{ workspace_name }}'

infrastructure/stackql_manifest.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,9 @@ resources:
381381
exports:
382382
- databricks_workspace_name
383383
- databricks_workspace_id
384-
- databricks_deployment_name
384+
- databricks_deployment_name
385+
- databricks_workspace_status
386+
- databricks_workspace_url
385387

386388
- name: databricks_account/workspace_group
387389
props:
@@ -489,4 +491,9 @@ resources:
489491
securable_type = 'external_location' AND
490492
deployment_name = '{{ databricks_deployment_name }}';
491493
492-
494+
exports:
495+
- databricks_workspace_name
496+
- databricks_workspace_id
497+
- databricks_deployment_name
498+
- databricks_workspace_status
499+
- databricks_workspace_url

0 commit comments

Comments
 (0)