@@ -30,11 +30,11 @@ jobs:
30
30
id : generate_rg_name
31
31
run : |
32
32
echo "Generating a unique resource group name..."
33
- TIMESTAMP=$(date +%Y%m%d%H%M%S)
34
- COMMON_PART="ci-mycsa"
35
- UNIQUE_RG_NAME="${COMMON_PART}${TIMESTAMP }"
33
+ ACCL_NAME="codemod"
34
+ SHORT_UUID=$(uuidgen | cut -d'-' -f1)
35
+ UNIQUE_RG_NAME="arg-${ACCL_NAME}-${SHORT_UUID }"
36
36
echo "RESOURCE_GROUP_NAME=${UNIQUE_RG_NAME}" >> $GITHUB_ENV
37
- echo "Generated Resource_GROUP_PREFIX : ${UNIQUE_RG_NAME}"
37
+ echo "Generated RESOURCE_GROUP_NAME : ${UNIQUE_RG_NAME}"
38
38
39
39
40
40
- name : Check and Create Resource Group
50
50
echo "Resource group already exists."
51
51
fi
52
52
53
+
54
+ - name : Generate Unique Solution Prefix
55
+ id : generate_solution_prefix
56
+ run : |
57
+ set -e
58
+ COMMON_PART="pslcod"
59
+ TIMESTAMP=$(date +%s)
60
+ UPDATED_TIMESTAMP=$(echo $TIMESTAMP | tail -c 3)
61
+ UNIQUE_SOLUTION_PREFIX="${COMMON_PART}${UPDATED_TIMESTAMP}"
62
+ echo "SOLUTION_PREFIX=${UNIQUE_SOLUTION_PREFIX}" >> $GITHUB_ENV
63
+ echo "Generated SOLUTION_PREFIX: ${UNIQUE_SOLUTION_PREFIX}"
64
+
53
65
54
66
- name : Deploy Bicep Template
55
67
id : deploy
58
70
az deployment group create \
59
71
--resource-group ${{ env.RESOURCE_GROUP_NAME }} \
60
72
--template-file infra/main.bicep \
61
- --parameters AzureAiServiceLocation=northcentralus Prefix=codegen
73
+ --parameters AzureAiServiceLocation=northcentralus Prefix=${{ env.SOLUTION_PREFIX }}
62
74
63
75
64
76
- name : Send Notification on Failure
80
92
-d "$EMAIL_BODY" || echo "Failed to send notification"
81
93
82
94
83
- - name : Get Log Analytics Workspace from Resource Group
84
- id : get_log_analytics_workspace
95
+ - name : Get Log Analytics Workspace and OpenAI from Resource Group
96
+ id : get_azure_resources
85
97
run : |
86
98
87
99
set -e
@@ -98,6 +110,19 @@ jobs:
98
110
echo "Log Analytics workspace name : ${log_analytics_workspace_name}"
99
111
fi
100
112
113
+ echo "Fetching OpenAI resource from resource group ${{ env.RESOURCE_GROUP_NAME }}..."
114
+
115
+ # Run the az resource list command to get the OpenAI resource name
116
+ openai_resource_name=$(az resource list --resource-group ${{ env.RESOURCE_GROUP_NAME }} --resource-type "Microsoft.CognitiveServices/accounts" --query "[0].name" -o tsv)
117
+
118
+ if [ -z "$openai_resource_name" ]; then
119
+ echo "No OpenAI resource found in resource group ${{ env.RESOURCE_GROUP_NAME }}."
120
+ exit 1
121
+ else
122
+ echo "OPENAI_RESOURCE_NAME=${openai_resource_name}" >> $GITHUB_ENV
123
+ echo "OpenAI resource name : ${openai_resource_name}"
124
+ fi
125
+
101
126
102
127
- name : List KeyVaults and Store in Array
103
128
id : list_keyvaults
@@ -179,7 +204,7 @@ jobs:
179
204
IFS=',' read -r -a resources_to_check <<< "$stripped_keyvaults"
180
205
181
206
# Append new resources to the array
182
- resources_to_check+=("${{ env.LOG_ANALYTICS_WORKSPACE_NAME }}")
207
+ resources_to_check+=("${{ env.LOG_ANALYTICS_WORKSPACE_NAME }}" "${{ env.OPENAI_RESOURCE_NAME }}" )
183
208
184
209
echo "List of resources to check: ${resources_to_check[@]}"
185
210
@@ -230,7 +255,18 @@ jobs:
230
255
if : success()
231
256
run : |
232
257
233
- set -e
258
+ set -e
259
+
260
+ echo "Azure OpenAI: ${{ env.OPENAI_RESOURCE_NAME }}"
261
+
262
+ # Purge OpenAI Resource
263
+ echo "Purging the OpenAI Resource..."
264
+ if ! az resource delete --ids /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/providers/Microsoft.CognitiveServices/locations/northcentralus/resourceGroups/${{ env.RESOURCE_GROUP_NAME }}/deletedAccounts/${{ env.OPENAI_RESOURCE_NAME }} --verbose; then
265
+ echo "Failed to purge openai resource: ${{ env.OPENAI_RESOURCE_NAME }}"
266
+ else
267
+ echo "Purged the openai resource: ${{ env.OPENAI_RESOURCE_NAME }}"
268
+ fi
269
+
234
270
# List of keyvaults
235
271
KEYVAULTS="${{ env.KEYVAULTS }}"
236
272
@@ -259,3 +295,4 @@ jobs:
259
295
echo "KeyVault '$keyvault_name' is not soft-deleted. No action taken."
260
296
fi
261
297
done
298
+ echo "Resource purging completed successfully"
0 commit comments