Skip to content

test action

test action #13

name: Build Image Factory VM
on:
push:
paths:
- ".github/workflows/packer-build-if-vm.yml"
- "images/packer/image-factory-vm"
workflow_dispatch:
jobs:
packer-build:
runs-on: ubuntu-latest
env:
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }}
AZURE_ACG: ${{ vars.AZURE_ACG }}
AZURE_CREDENTIALS: |
{
"clientId": "${{ secrets.AZURE_CLIENT_ID }}",
"clientSecret": "${{ secrets.AZURE_CLIENT_SECRET }}",
"subscriptionId": "${{ secrets.AZURE_SUBSCRIPTION_ID }}",
"tenantId": "${{ secrets.AZURE_TENANT_ID }}"
}
IMAGE_NAME: "image-factory-vm"
IMAGE_PUBLISHER: "Canonical"
IMAGE_OFFER: "0001-com-ubuntu-server-jammy"
IMAGE_SKU: "22_04-lts-gen2"
IMAGE_OS_TYPE: "linux"
steps:
- name: Checkout Repository
uses: actions/checkout@v4
# - name: Template packer vars file
# uses: cuchi/[email protected]
# with:
# template: images/packer/image-factory-vm/values.auto.pkrvars.hcl.j2
# output_file: images/packer/image-factory-vm/values.auto.pkrvars.hcl
- name: Azure Login
uses: azure/login@v2
with:
creds: ${{ env.AZURE_CREDENTIALS }}
- name: Create Image Definition
uses: azure/cli@v2
with:
azcliversion: 2.64.0
inlineScript: |
set +e
image_definition_exists=$(az sig image-definition show \
--resource-group "$AZURE_RESOURCE_GROUP" \
--gallery-name "$AZURE_ACG" \
--gallery-image-definition "$IMAGE_NAME" \
--query "name" -o tsv)
set -e
if [ -z "$image_definition_exists" ]; then
echo "Image definition does not exist. Creating it..."
az sig image-definition create \
--resource-group "$AZURE_RESOURCE_GROUP" \
--gallery-name "$AZURE_ACG" \
--gallery-image-definition "$IMAGE_NAME" \
--publisher "$IMAGE_PUBLISHER" \
--offer "$IMAGE_OFFER" \
--sku "$IMAGE_SKU" \
--os-type "$IMAGE_OS_TYPE"
else
echo "Image definition '$IMAGE_NAME' already exists."
fi