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
3534jobs :
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
0 commit comments