Skip to content

Create unified scheduled build for AWS, Azure and GCP #155

Create unified scheduled build for AWS, Azure and GCP

Create unified scheduled build for AWS, Azure and GCP #155

Workflow file for this run

name: Validate the Packer templates
on:
push:
branches-ignore: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
name: 👷 ${{ matrix.cloud }}
strategy:
matrix:
cloud: [aws, azure, gcp]
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
env:
# AWS
PKR_VAR_encrypt_boot: false
# GCP
PKR_VAR_project_id: spacelift-workers
PKR_VAR_account_file: ./gcp.json
PKR_VAR_image_base_name: spacelift-worker
PKR_VAR_image_family: spacelift-worker
# Azure
PKR_VAR_client_id: "433d3ca3-1866-4dfa-b9bf-65d6c4391ec7"
PKR_VAR_tenant_id: ${{ secrets.AZURE_TENANT_ID }}
PKR_VAR_subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
PKR_VAR_image_resource_group: rg-worker_images-public-westeurope
PKR_VAR_packer_work_group: rg-worker_images_packer-public-westeurope
PKR_VAR_gallery_resource_group: rg-worker_images-public-westeurope
PKR_VAR_gallery_name: spacelift_worker_images_public
PKR_VAR_gallery_image_name: spacelift_worker_image
PKR_VAR_gallery_replication_regions: '["westeurope", "northeurope", "northcentralus", "eastus", "eastus2", "westus2", "westus3"]'
PKR_VAR_gallery_image_version: 1.0.${{ github.run_number }}
steps:
- name: Check out the source code
uses: actions/checkout@main
- name: Create account file for GCP
if: matrix.cloud == 'gcp'
run: |
echo '${{ secrets.GCP_CREDENTIALS_JSON }}' > ${{ env.PKR_VAR_account_file }}
- name: Export suffix for GCP
if: matrix.cloud == 'gcp'
run: |
echo "PKR_VAR_suffix=$(date +%s)-$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c 8)" >> $GITHUB_ENV
- name: Setup packer
uses: hashicorp/setup-packer@main
with:
version: latest
- name: Initialize Packer
run: packer init ${{ matrix.cloud }}.pkr.hcl
- name: Validate the Packer template
id: validate
run: packer validate ${{ matrix.cloud }}.pkr.hcl