Skip to content

FWB gha update

FWB gha update #23

name: "[FGT] Azure Marketplace release"
on:
push:
tags:
- "*"
- "!FPX-*"
workflow_dispatch:
jobs:
build:
name: Getting all data ready for publishing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Azure Login via Az module
uses: azure/login@v2
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
enable-AzPSSession: true
- name: Package and convert templates
uses: azure/powershell@v2
with:
inlineScript: |
$buildingBlocks = @("A-Single-VM", "Active-Active-ELB-ILB","Active-Passive-ELB-ILB","Active-Passive-SDN")
$fgtMarketplaceVersions = @()
$fgtMarketplaceVersionsUI = @()
$fortigateVersions = Get-AzVMImage -PublisherName "fortinet" -Location eastus -Offer "fortinet_fortigate-vm_v5" -sku "fortinet_fg-vm"
$fgtMarketplaceVersions += $($fortigateVersions | Where-Object {$_.Version.StartsWith("6")} | Sort-Object -Unique -Property Version | Select-Object -Last 2).Version
$fgtMarketplaceVersions += $($fortigateVersions | Where-Object {$_.Version.StartsWith("7")} | Sort-Object -Unique -Property Version | Select-Object -Last 2).Version
$fgtMarketplaceVersions += "latest"
$fgtMarketplaceVersions | ForEach-Object { $fgtMarketplaceVersionsUI += [pscustomobject]@{label=$_;value=$_} }
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 = $fgtMarketplaceVersions
$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 = $fgtMarketplaceVersionsUI
$content | ConvertTo-Json -depth 100 | Out-File "${dest}/createUiDefinition.json"
"" | Out-File -Append "${dest}/createUiDefinition.json"
}
Compress-Archive -Path "./releases/*" -DestinationPath "./releases/fortigate-azure-templates.zip"
azPSVersion: "latest"
- name: upload-templates-zip
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{secrets.GITHUB_TOKEN}}
file: ./releases/fortigate-azure-templates.zip
asset_name: fortigate-azure-templates.zip
tag: ${{github.ref}}
overwrite: true
body: "FortiGate Azure Marketplace Release"