From ffccec2569a1d16b0077bd0bd0840fb0e252fd04 Mon Sep 17 00:00:00 2001 From: Joeri Van Hoof Date: Fri, 20 Sep 2024 21:34:37 +0200 Subject: [PATCH] FGT: gha update --- .../fgt-azure-marketplace-release.yml | 39 +++++++++++++------ .../fgt-azure-marketplace-version-update.yml | 2 - x/fortinet-azure-solutions | 1 + 3 files changed, 29 insertions(+), 13 deletions(-) create mode 160000 x/fortinet-azure-solutions diff --git a/.github/workflows/fgt-azure-marketplace-release.yml b/.github/workflows/fgt-azure-marketplace-release.yml index 6f15d158..5c3694ba 100644 --- a/.github/workflows/fgt-azure-marketplace-release.yml +++ b/.github/workflows/fgt-azure-marketplace-release.yml @@ -62,26 +62,43 @@ jobs: $marketplaceVersionsUI_arm64 = @() $marketplaceVersions_x64 = @("latest") + $(Get-LatestVersions $(Get-AzVMImage -PublisherName "${env:PUBLISHER}" -Location eastus -Offer "${env:PRODUCTOFFER}" -sku "${env:PRODUCTSKU_X64}").Version) + $marketplaceVersions_x64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_x64.json" $marketplaceVersions_x64 | ForEach-Object { $marketplaceVersionsUI_x64 += [pscustomobject]@{label=$_;value=$_} } + $marketplaceVersionsUI_x64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_ui_x64.json" $marketplaceVersions_arm64 = @("latest") + $(Get-LatestVersions $(Get-AzVMImage -PublisherName "${env:PUBLISHER}" -Location eastus -Offer "${env:PRODUCTOFFER}" -sku "${env:PRODUCTSKU_ARM64}").Version) + $marketplaceVersions_arm64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_arm64.json" $marketplaceVersions_arm64 | ForEach-Object { $marketplaceVersionsUI_arm64 += [pscustomobject]@{label=$_;value=$_} } + $marketplaceVersionsUI_arm64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_ui_arm64.json" foreach ($buildingBlock in $buildingBlocks) { $dest = "./releases/${buildingBlock}/" [void](New-Item -Path "${dest}" -Type Directory) - $content = Get-Content -Raw -Path "./FortiGate/${buildingBlock}/azuredeploy.json" | ConvertFrom-Json - $content.parameters.fortiGateImageVersion.allowedValues = $marketplaceVersions_x64 - $content.resources.Where({$_.type -eq 'Microsoft.Resources/deployments'})[0].name = "pid-776b2227-2743-485a-b385-e9dfd42bfe75-partnercenter" - $content | ConvertTo-Json -depth 100 | Out-File "${dest}/mainTemplate.json" - "" | Out-File -Append "${dest}/mainTemplate.json" - - $content = Get-Content -Raw -Path "./FortiGate/${buildingBlock}/createUiDefinition.json" | ConvertFrom-Json - $content.parameters.basics.Where({$_.Name.equals("fortiGateImageVersion")}).constraints.allowedValues = $marketplaceVersionsUI_x64 - $content | ConvertTo-Json -depth 100 | Out-File "${dest}/createUiDefinition.json" - "" | Out-File -Append "${dest}/createUiDefinition.json" - + if (Test-Path -Path "./${env:PRODUCT}/${buildingBlock}/azuredeploy.json" -PathType Leaf) { + Get-Content -Raw -Path "./${env:PRODUCT}/${buildingBlock}/azuredeploy.json" | jq --slurpfile content "./fgtversion_x64.json" '.parameters.fortiGateImageVersion_x64.allowedValues = $content[]' | Set-Content -Path "./releases/${buildingBlock}/mainTemplate.json" + $content = Get-Content "./releases/${buildingBlock}/mainTemplate.json" -Raw + if (-Not $content -match '(?<=\r\n)\z') { + "" | Out-File -Append "./releases/${buildingBlock}/mainTemplate.json" + } + Get-Content -Raw -Path "./${env:PRODUCT}/${buildingBlock}/azuredeploy.json" | jq --slurpfile content "./fgtversion_arm64.json" '.parameters.fortiGateImageVersion_arm64.allowedValues = $content[]' | Set-Content -Path "./releases/${buildingBlock}/mainTemplate.json" + $content = Get-Content "./releases/${buildingBlock}/mainTemplate.json" -Raw + if (-Not $content -match '(?<=\r\n)\z') { + "" | Out-File -Append "./releases/${buildingBlock}/mainTemplate.json" + } + } + if (Test-Path -Path "./${env:PRODUCT}/${buildingBlock}/createUiDefinition.json" -PathType Leaf) { + Get-Content -Raw -Path "./${env:PRODUCT}/${buildingBlock}/createUiDefinition.json" | jq --slurpfile content "./fgtversion_ui_x64.json" '(.parameters.steps[].elements[] | select( .name == "instancetype_x64") | .elements[] | select( .name == "fortiGateImageVersion_x64") | .constraints.allowedValues) |= $content[]' | Set-Content -Path "./releases/${buildingBlock}/createUiDefinition.json" + $content = Get-Content "./releases/${buildingBlock}/createUiDefinition.json" -Raw + if (-Not $content -match '(?<=\r\n)\z') { + "" | Out-File -Append "./releases/${buildingBlock}/createUiDefinition.json" + } + Get-Content -Raw -Path "./${env:PRODUCT}/${buildingBlock}/createUiDefinition.json" | jq --slurpfile content "./fgtversion_ui_arm64.json" '(.parameters.steps[].elements[] | select( .name == "instancetype_arm64") | .elements[] | select( .name == "fortiGateImageVersion_arm64") | .constraints.allowedValues) |= $content[]' | Set-Content -Path "./releases/${buildingBlock}/createUiDefinition.json" + $content = Get-Content "./releases/${buildingBlock}/createUiDefinition.json" -Raw + if (-Not $content -match '(?<=\r\n)\z') { + "" | Out-File -Append "./releases/${buildingBlock}/createUiDefinition.json" + } + } Compress-Archive -Path "./releases/${buildingBlock}/*" -DestinationPath "./releases/${env:PRODUCTL}-$($buildingBlock.ToLower())-azure-templates.zip" } azPSVersion: "latest" diff --git a/.github/workflows/fgt-azure-marketplace-version-update.yml b/.github/workflows/fgt-azure-marketplace-version-update.yml index cff2d28a..f19be6be 100644 --- a/.github/workflows/fgt-azure-marketplace-version-update.yml +++ b/.github/workflows/fgt-azure-marketplace-version-update.yml @@ -58,8 +58,6 @@ jobs: $marketplaceVersionsUI_x64 | ConvertTo-Json | Out-File -Filepath "./fgtversionui_x64.json" $marketplaceVersions_arm64 = @("latest") + $(Sort-Versions($(Get-AzVMImage -PublisherName "fortinet" -Location eastus -Offer "${env:PRODUCTOFFER}" -sku "${env:PRODUCTSKU_ARM64}").Version)) - $marketplaceVersions_arm64 += "latest" - [array]::Reverse($marketplaceVersions_arm64) $marketplaceVersions_arm64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_arm64.json" $marketplaceVersions_arm64 | ForEach-Object { $marketplaceVersionsUI_arm64 += [pscustomobject]@{label=$_;value=$_} } $marketplaceVersionsUI_arm64 | ConvertTo-Json | Out-File -Filepath "./fgtversion_arm64_ui.json" diff --git a/x/fortinet-azure-solutions b/x/fortinet-azure-solutions new file mode 160000 index 00000000..5d96d126 --- /dev/null +++ b/x/fortinet-azure-solutions @@ -0,0 +1 @@ +Subproject commit 5d96d1264db2a43c88d9f3b00956e951dd584891