feat: add build job
Some checks failed
Build / build (pull_request) Failing after 2m4s

- add build job that runs `make plan`
- enable provider caching
- enable creating client.crt/client.key
This commit is contained in:
Ben Vincent 2025-10-17 10:29:55 +11:00
parent 3f386b4e21
commit d4778f3fd7
8 changed files with 51 additions and 7 deletions

View File

@ -0,0 +1,32 @@
---
name: Build
on:
pull_request:
jobs:
build:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Fetch master branch
run: |
git fetch origin master:master
- name: Show changed files
run: |
git diff --name-only master
- name: Run Terraform Plan
env:
VAULT_ROLEID: ${{ secrets.TERRAFORM_INCUS_VAULT_ROLEID }}
run: |
make plan

View File

@ -11,7 +11,13 @@ define vault_env
export PUPPET_CERT_PUB=$$(vault kv get -field=public_key kv/service/puppet/certificates/terraform) && \
export PUPPET_CERT_PRIV=$$(vault kv get -field=private_key kv/service/puppet/certificates/terraform) && \
export TG_QUEUE_EXCLUDE_DIR="templates/base" && \
export $$(vault read -format=json kv/data/service/terraform/incus | jq -r '.data.data | to_entries[] | "\(.key)=\(.value)"')
export TG_PROVIDER_CACHE=1 && \
eval "$$(vault read -format=json kv/data/service/terraform/incus \
| jq -r '.data.data | to_entries[] | "export \(.key)=\(.value|@sh)"')" && \
export INCUS_CONFIG_DIR=$$(mktemp -d) && \
mkdir -p $$INCUS_CONFIG_DIR && \
printf '%s\n' "$$INCUS_CLIENT_CRT" > $$INCUS_CONFIG_DIR/client.crt && \
printf '%s\n' "$$INCUS_CLIENT_KEY" > $$INCUS_CONFIG_DIR/client.key
endef
clean:

View File

@ -34,8 +34,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"

View File

@ -26,8 +26,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"

View File

@ -26,8 +26,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"

View File

@ -26,8 +26,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"

View File

@ -26,8 +26,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"

View File

@ -26,8 +26,9 @@ generate "provider" {
if_exists = "overwrite_terragrunt"
contents = <<-EOF
provider "incus" {
generate_client_certificates = true
generate_client_certificates = false
accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote {
name = "${basename(get_terragrunt_dir())}"