Skip to content

commit

commit #18

Workflow file for this run

name: Terraform
on:
push:
branches:
- "**"
pull_request:
branches:
- "**"
permissions:
contents: read
env:
TERRAFORM_VERSION: 1.4.6
DEFAULT_BRANCH_CONFIG: |
{
"TERRAFORM_DIR": ".",
"BRANCHES": [
{
"WORKSPACE": "default",
"VARFILES": [
"terraform.tfvars"
],
"SHOULD_PLAN": true,
"SHOULD_APPLY": true
}
]
}
jobs:
setup:
runs-on: ubuntu-latest
outputs:
workspace: ${{ steps.parse-config.outputs.workspace }}
varfile: ${{ steps.parse-config.outputs.varfile }}
should_plan: ${{ steps.parse-config.outputs.should_plan }}
should_apply: ${{ steps.parse-config.outputs.should_apply }}
terraform_dir: ${{ steps.parse-config.outputs.terraform_dir }}
steps:
- name: Parse Configuration
id: parse-config
run: |
BRANCH_NAME="${{ github.head_ref || github.ref_name }}"
if [ -f "tf-cfg.yaml" ]; then
TERRAFORM_DIR=$(cat tf-cfg.yaml | yq eval '.TERRAFORM_DIR')
BRANCH_CONFIG=$(cat tf-cfg.yaml | yq eval '.BRANCHES[] | select(.BRANCH == env(BRANCH_NAME))')
elif [ -f "tf-cfg.json" ]; then
TERRAFORM_DIR=$(cat tf-cfg.json | yq eval '.TERRAFORM_DIR')
BRANCH_CONFIG=$(cat tf-cfg.json | yq eval '.BRANCHES[] | select(.BRANCH == env(BRANCH_NAME))')
else
TERRAFORM_DIR=$(echo "${{ env.DEFAULT_BRANCH_CONFIG }}" | yq eval '.TERRAFORM_DIR')
BRANCH_CONFIG=$(echo "${{ env.DEFAULT_BRANCH_CONFIG }}" | yq eval '.BRANCHES[0]')
fi
echo $BRANCH_CONFIG | yq
#echo BRANCH_CONFIG | jq
WORKSPACE=$(echo "$BRANCH_CONFIG" | yq eval '.WORKSPACE' -)
VARFILE=$(echo "$BRANCH_CONFIG" | yq eval '.VARFILES' -)
SHOULD_PLAN=$(echo "$BRANCH_CONFIG" | yq eval '.SHOULD_PLAN' -)
SHOULD_APPLY=$(echo "$BRANCH_CONFIG" | yq eval '.SHOULD_APPLY' -)
echo "workspace: $WORKSPACE"
echo "varfile: $VARFILE"
echo "should_plan: $SHOULD_PLAN"
echo "should_apply: $SHOULD_APPLY"
echo "terraform_dir: $TERRAFORM_DIR"
echo "workspace=$WORKSPACE" >> $GITHUB_OUTPUT
echo "varfile=$VARFILE" >> $GITHUB_OUTPUT
echo "should_plan=$SHOULD_PLAN" >> $GITHUB_OUTPUT
echo "should_apply=$SHOULD_APPLY" >> $GITHUB_OUTPUT
echo "terraform_dir=$TERRAFORM_DIR" >> $GITHUB_OUTPUT