Skip to content

Commit 9c4b31a

Browse files
authored
Merge pull request #21 from git-for-windows/azure-vm-custom-script-extension-output
azure-arm-template: get CustomScriptExtension output
2 parents dcbf28f + 5e22fa6 commit 9c4b31a

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

.github/workflows/create-azure-self-hosted-runners.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,16 @@ jobs:
149149
creds: ${{ secrets.AZURE_CREDENTIALS }}
150150

151151
- uses: azure/arm-deploy@v1
152+
id: deploy-arm-template
152153
with:
153154
resourceGroupName: ${{ secrets.AZURE_RESOURCE_GROUP }}
154155
template: ./azure-self-hosted-runners/azure-arm-template.json
155156
parameters: ./azure-self-hosted-runners/azure-arm-template-example-parameters.json ${{ env.AZURE_ARM_PARAMETERS }}
157+
158+
- name: Show post-deployment script output
159+
env:
160+
CUSTOM_SCRIPT_OUTPUT: ${{ steps.deploy-arm-template.outputs.customScriptInstanceView }}
161+
run: echo "$CUSTOM_SCRIPT_OUTPUT" | jq -r '.substatuses[0].message'
156162

157163
- name: Deallocate the VM for later use
158164
if: env.DEALLOCATE_IMMEDIATELY == 'true'

azure-self-hosted-runners/azure-arm-template.json

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,12 @@
108108
"nicName": "[concat(parameters('virtualMachineName'), '-nic')]",
109109
"vnetName": "[concat(parameters('virtualMachineName'), '-vnet')]",
110110
"vnetId": "[resourceId(resourceGroup().name,'Microsoft.Network/virtualNetworks', concat(parameters('virtualMachineName'), '-vnet'))]",
111-
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]"
111+
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]",
112+
"UriFileNamePieces": "[split(parameters('postDeploymentPsScriptUrl'), '/')]",
113+
"firstFileNameString": "[variables('UriFileNamePieces')[sub(length(variables('UriFileNamePieces')), 1)]]",
114+
"firstFileNameBreakString": "[split(variables('firstFileNameString'), '?')]",
115+
"firstFileName": "[variables('firstFileNameBreakString')[0]]",
116+
"postDeploymentScriptArguments": "[concat('-GitHubActionsRunnerToken ', parameters('githubActionsRunnerToken'), ' -GithubActionsRunnerRegistrationUrl ', parameters('githubActionsRunnerRegistrationUrl'), ' -GithubActionsRunnerName ', parameters('virtualMachineName'), ' -StopService ', parameters('stopService'), ' -GitHubActionsRunnerPath ', parameters('githubActionsRunnerPath'))]"
112117
},
113118
"resources": [
114119
{
@@ -243,38 +248,35 @@
243248
]
244249
},
245250
{
246-
"name": "Microsoft.CustomScriptExtension",
247-
"apiVersion": "2015-01-01",
248-
"type": "Microsoft.Resources/deployments",
251+
"type": "Microsoft.Compute/virtualMachines/extensions",
252+
"apiVersion": "2020-12-01",
253+
"name": "[concat(parameters('virtualMachineName'), '/CustomScriptExtension')]",
254+
"dependsOn": [
255+
"[resourceId('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]"
256+
],
257+
"location": "[parameters('location')]",
249258
"properties": {
250-
"mode": "incremental",
251-
"templateLink": {
252-
"uri": "https://catalogartifact.azureedge.net/publicartifacts/Microsoft.CustomScriptExtension-arm-2.0.57/MainTemplate.json"
259+
"publisher": "Microsoft.Compute",
260+
"type": "CustomScriptExtension",
261+
"typeHandlerVersion": "1.9",
262+
"autoUpgradeMinorVersion": true,
263+
"settings": {
264+
"fileUris": "[split(parameters('postDeploymentPsScriptUrl'), ' ')]"
253265
},
254-
"parameters": {
255-
"fileUris": {
256-
"value": "[parameters('postDeploymentPsScriptUrl')]"
257-
},
258-
"vmName": {
259-
"value": "[parameters('virtualMachineName')]"
260-
},
261-
"location": {
262-
"value": "[parameters('location')]"
263-
},
264-
"arguments": {
265-
"value": "[concat('-GitHubActionsRunnerToken ', parameters('githubActionsRunnerToken'), ' -GithubActionsRunnerRegistrationUrl ', parameters('githubActionsRunnerRegistrationUrl'), ' -GithubActionsRunnerName ', parameters('virtualMachineName'), ' -StopService ', parameters('stopService'), ' -GitHubActionsRunnerPath ', parameters('githubActionsRunnerPath'))]"
266-
}
266+
"protectedSettings": {
267+
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('firstFileName'), ' ', variables('postDeploymentScriptArguments'))]"
267268
}
268-
},
269-
"dependsOn": [
270-
"[resourceId('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]"
271-
]
269+
}
272270
}
273271
],
274272
"outputs": {
275273
"adminUsername": {
276274
"type": "string",
277275
"value": "[parameters('adminUsername')]"
276+
},
277+
"customScriptInstanceView": {
278+
"type": "object",
279+
"value": "[reference(resourceId('Microsoft.Compute/virtualMachines/extensions', parameters('virtualMachineName'), 'CustomScriptExtension')).instanceView]"
278280
}
279281
}
280282
}

0 commit comments

Comments
 (0)