TFAutomation_templates

Find the detailed documentation for reusable workflows here.

Usage

Create a file in the path .github/workflows, example down below.

name: 'Build'

on:
  workflow_dispatch:
  pull_request:
    types: [opened, synchronize]
    branches:
      - main
      
jobs:
  call-workflow:
    strategy:
      matrix:
        target: [./, ./common, ./network]
    uses: ScalefreeCOM/TFAutomation_templates/.github/workflows/terraform-build.yml@main
    with:
      region: eu-west-3
      tf_version: "1.5.4"
      working_directory: ${{ matrix.target }}
    secrets: inherit
    permissions:
      contents: read

Note

on: when workflow is triggered
uses: path to reusable workflow
with: inputs for reusable workflow

If you have multiple directories use the matrix strategy:

    strategy:
      matrix:
        target: [./, ./common, ./network]

replace your directories with those in the example.

Inputs for different templates:

terraform-build.yml

Example

input name default required
runs-on ubuntu-latest no
region eu-west-1 no
cloud_provider aws specific for provider
tf_version - yes
working_directory - yes
secrets requires
TFAUTOMATION_AWS_ACCESS_KEY yes
TFAUTOMATION_AWS_SECRET_ACCESS_KEY yes
terraform-deploy.yml

Example

input name default required
runs-on ubuntu-latest no
region eu-west-1 no
cloud_provider aws specific for provider
tf_version - yes
working_directory - yes
approvers - yes
minimum-approvals 2 no
issue-title Deploying no
issue-body Please approve or deny the deployment no
secrets requires
TFAUTOMATION_AWS_ACCESS_KEY yes
TFAUTOMATION_AWS_SECRET_ACCESS_KEY yes
docker-image-build-push.yml

Example

input name default required
runs-on ubuntu-latest no
region eu-west-1 no
ecr-repo - yes
image_tag latest no
secrets requires
TFAUTOMATION_AWS_ACCESS_KEY yes
TFAUTOMATION_AWS_SECRET_ACCESS_KEY yes