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

- 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 f9697567da
8 changed files with 45 additions and 1 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_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 PUPPET_CERT_PRIV=$$(vault kv get -field=private_key kv/service/puppet/certificates/terraform) && \
export TG_QUEUE_EXCLUDE_DIR="templates/base" && \ 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 endef
clean: clean:

View File

@ -36,6 +36,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"

View File

@ -28,6 +28,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"

View File

@ -28,6 +28,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"

View File

@ -28,6 +28,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"

View File

@ -28,6 +28,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"

View File

@ -28,6 +28,7 @@ generate "provider" {
provider "incus" { provider "incus" {
generate_client_certificates = true generate_client_certificates = true
accept_remote_certificate = true accept_remote_certificate = true
config_dir = "${get_env("INCUS_CONFIG_DIR")}"
remote { remote {
name = "${basename(get_terragrunt_dir())}" name = "${basename(get_terragrunt_dir())}"