Skip to content

Commit 6cd465e

Browse files
Niall LangleyNJLangley
authored andcommitted
Added pipe to jq in azure CLI script code to test JSON parsing
1 parent 47b419f commit 6cd465e

File tree

1 file changed

+108
-4
lines changed

1 file changed

+108
-4
lines changed

.github/workflows/test_azure_devtest_labs_integration.yml

Lines changed: 108 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ jobs:
2121
# The type of runner that the job will run on
2222
runs-on: ubuntu-latest
2323

24+
# Variables for creating the leb environment
25+
env:
26+
RESOURCE_GROUP: AzureDataPipelineTools_CI
27+
LAB_NAME: AzureDataPipelineTools
28+
ARM_TEMPLATE_NAME: sqlcollaborative_AzureDataPipelineTools
29+
30+
2431
# Steps represent a sequence of tasks that will be executed as part of the job
2532
steps:
2633
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
@@ -32,13 +39,110 @@ jobs:
3239
with:
3340
creds: '${{ secrets.AZURE_DEV_TEST_LABS_CREDENTIALS }}'
3441

35-
- name: Azure CLI script
42+
# --raw-output is requiored on all jq commands that select strings, otherwise they come out with the quotes, which is interpreted as a command, and it likely won't exist!
43+
- name: Create DevTest Labs Environment
44+
id: create-devtest-labs-environment
3645
uses: azure/CLI@v1
3746
with:
38-
#azcliversion: 2.0.72
47+
#azcliversion: 2.24.0 # Versions prior to this have a bug creating environments
3948
inlineScript: |
40-
az version
41-
az account show
49+
echo "========================================================================================================================================================================================================"
50+
echo "Azure CLI Version: $(az version | jq '."azure-cli"')"
51+
echo
52+
echo "Connection info:"
53+
az account show | jq '. | {tenantId: .tenantId, subscriptionName: .name, userName: .user.name, userType: .user.type}'
54+
echo
55+
56+
ARTIFACT_SOURCE_NAME=$(az lab artifact-source list --resource-group $RESOURCE_GROUP \
57+
--lab-name $LAB_NAME \
58+
| jq --raw-output \
59+
'.[] | select( .uri == "https://github.com/sqlcollaborative/AzureDataPipelineTools.git" ) | .name' \
60+
)
61+
62+
echo "Artifact Source Name: $ARTIFACT_SOURCE_NAME"
63+
64+
BRANCH_NAME=${GITHUB_REF#*refs/heads/}
65+
echo "Branch Name: $BRANCH_NAME"
66+
67+
PARAMETERS_FILE="$(pwd)/azuredeploy.parameters.json"
68+
echo $'[ { "name":"'branch'", "value":"'$BRANCH_NAME'" }, { "name":"'commit'", "value":"'$GITHUB_SHA'" } ]' \
69+
| jq '.' > "$PARAMETERS_FILE"
70+
cat $PARAMETERS_FILE
71+
72+
ENVIRONMENT_INSTANCE_NAME='CI_Build___'"${BRANCH_NAME////__}"'___('"${GITHUB_SHA:0:8}"')'
73+
echo "Environment Instance Name: $ENVIRONMENT_INSTANCE_NAME"
74+
75+
echo "::set-output name=ENVIRONMENT_INSTANCE_NAME::$ENVIRONMENT_INSTANCE_NAME"
76+
77+
ENVIRONMENT_CREATE_OUTPUT=$(az lab environment create --resource-group $RESOURCE_GROUP \
78+
--lab-name $LAB_NAME \
79+
--name $ENVIRONMENT_INSTANCE_NAME \
80+
--artifact-source-name $ARTIFACT_SOURCE_NAME \
81+
--arm-template $ARM_TEMPLATE_NAME \
82+
--parameter "@$PARAMETERS_FILE" \
83+
| jq '.'
84+
)
85+
86+
echo "Output from 'az lab environment create'"
87+
echo $ENVIRONMENT_CREATE_OUTPUT
88+
89+
PROVISIONING_STATE=$(echo $ENVIRONMENT_CREATE_OUTPUT | jq --raw-output '.provisioningState')
90+
echo "Provisioning State: $PROVISIONING_STATE"
91+
92+
ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME=$(echo $ENVIRONMENT_CREATE_OUTPUT | jq --raw-output '.resourceGroupId' | xargs basename)
93+
echo "Resource Group Id: $ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME"
94+
95+
echo "::set-output name=ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME::$ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME"
96+
97+
if [ $PROVISIONING_STATE != "Succeeded" ]; then
98+
echo "::error Error provisioning lab environment"
99+
exit 1
100+
fi
101+
102+
echo "========================================================================================================================================================================================================"
103+
104+
105+
- name: Get DevTest Labs Environment Resource Info
106+
id: get-devtest-labs-environment-resources
107+
uses: azure/CLI@v1
108+
with:
109+
#azcliversion: 2.24.0 # Versions prior to this have a bug creating environments
110+
inlineScript: |
111+
echo "========================================================================================================================================================================================================"
112+
echo "Azure CLI Version: $(az version | jq '."azure-cli"')"
113+
echo
114+
echo "Connection info:"
115+
az account show | jq '. | {tenantId: .tenantId, subscriptionName: .name, userName: .user.name, userType: .user.type}'
116+
echo
117+
118+
RESOURCE_GROUP="${{ steps.create-devtest-labs-environment.outputs.ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME }}"
119+
120+
ENVIRONMENT_INSTANCE_RESOURCES=$(az resource list --resource-group $RESOURCE_GROUP \
121+
| jq '.[] | { name: .name, id: .id, provisioningState: .provisioningState, kind: .kind, location: .location, tags: .tags }'
122+
)
123+
124+
echo "Output from 'az resource list --resource-group $RESOURCE_GROUP'"
125+
echo
126+
echo $ENVIRONMENT_INSTANCE_RESOURCES
127+
128+
echo "::set-output name=ENVIRONMENT_INSTANCE_RESOURCES::$ENVIRONMENT_INSTANCE_RESOURCES"
129+
130+
echo "========================================================================================================================================================================================================"
131+
132+
133+
134+
135+
# Runs a set of commands using the runners shell
136+
- name: Run a multi-line script
137+
run: |
138+
echo "ENVIRONMENT_INSTANCE_NAME: ${{ steps.create-devtest-labs-environment.outputs.ENVIRONMENT_INSTANCE_NAME }}"
139+
echo "ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME: ${{ steps.create-devtest-labs-environment.outputs.ENVIRONMENT_INSTANCE_RESOURCE_GROUP_NAME }}"
140+
echo "ENVIRONMENT_INSTANCE_RESOURCES: ${{ steps.get-devtest-labs-environment-resources.outputs.ENVIRONMENT_INSTANCE_RESOURCES }}"
141+
# az lab arm-template show --resource-group $RESOURCE_GROUP \
142+
# --lab-name $LAB_NAME \
143+
# --artifact-source-name $ARTIFACT_SOURCE_NAME \
144+
# --name $ARM_TEMPLATE_NAME
145+
42146

43147
# # Once logged into Azure, run a test command to check it worked
44148
# - name: Azure CLI script

0 commit comments

Comments
 (0)