84 lines
3.1 KiB
YAML
84 lines
3.1 KiB
YAML
name: 'Main'
|
|
|
|
on:
|
|
push:
|
|
tags: ['*']
|
|
branches: ['*']
|
|
pull_request:
|
|
branches: ['*']
|
|
schedule:
|
|
- cron: '20 04 1,15 * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
validate-packer:
|
|
name: 'Validate Packer configuration'
|
|
runs-on: 'ubuntu-20.04'
|
|
permissions:
|
|
contents: 'read'
|
|
defaults:
|
|
run:
|
|
working-directory: './packer/'
|
|
steps:
|
|
- name: 'Checkout project'
|
|
uses: 'actions/checkout@v3'
|
|
- name: 'Install dependencies'
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -sSf 'https://apt.releases.hashicorp.com/gpg' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/hashicorp.gpg
|
|
printf '%s\n' "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list >/dev/null
|
|
sudo apt-get update && sudo apt-get install -y --no-install-recommends packer
|
|
- name: 'Validate configuration'
|
|
run: |
|
|
packer validate ./
|
|
- name: 'Check configuration format'
|
|
run: |
|
|
packer fmt -check -diff ./
|
|
|
|
validate-terraform:
|
|
name: 'Validate Terraform configuration'
|
|
runs-on: 'ubuntu-20.04'
|
|
permissions:
|
|
contents: 'read'
|
|
defaults:
|
|
run:
|
|
working-directory: './terraform/'
|
|
steps:
|
|
- name: 'Checkout project'
|
|
uses: 'actions/checkout@v3'
|
|
- name: 'Install dependencies'
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -sSf 'https://apt.releases.hashicorp.com/gpg' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/hashicorp.gpg
|
|
printf '%s\n' "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list >/dev/null
|
|
sudo apt-get update && sudo apt-get install -y --no-install-recommends terraform
|
|
- name: 'Init Terraform'
|
|
run: |
|
|
terraform init
|
|
- name: 'Validate configuration'
|
|
run: |
|
|
terraform validate ./
|
|
- name: 'Check configuration format'
|
|
run: |
|
|
terraform fmt -check -diff ./
|
|
|
|
build-packer:
|
|
name: 'Build Packer image'
|
|
needs: ['validate-packer']
|
|
runs-on: 'ubuntu-20.04'
|
|
permissions:
|
|
contents: 'read'
|
|
defaults:
|
|
run:
|
|
working-directory: './packer/'
|
|
steps:
|
|
- name: 'Checkout project'
|
|
uses: 'actions/checkout@v3'
|
|
- name: 'Install dependencies'
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -sSf 'https://apt.releases.hashicorp.com/gpg' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/hashicorp.gpg
|
|
printf '%s\n' "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/hashicorp.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list >/dev/null
|
|
sudo apt-get update && sudo apt-get install -y --no-install-recommends packer qemu-utils qemu-system-x86
|
|
- name: 'Build image'
|
|
run: |
|
|
make build-qemu PACKER_LOG=1 PKR_VAR_qemu_accelerator=none
|