Skip to content

GitHub Action coping Terraform variables across modules

Actions
GitHub Action automatically copying variables definitions from a single file to many modules
v1.0.0
Latest
Star (1)

GitHub Action coping Terraform variables across modules

GitHub Action automatically copying variables' definitions from a single file to many modules.

📦 Available on

✨ Features

  • It's main use will be everywhere where Terraform is used with more than one module in a monorepo.
  • Reads file defined with all_vars_file and will use whole definitions of variables from it.
  • For every module matching dirs_with_modules will search files matching files_with_vars and replace matching variables from all_vars_file.
  • To not loose the changes combine with my other action devops-infra/action-commit-push.

🔗 Related Actions

Perfect for automation workflows and integrates seamlessly with devops-infra/action-commit-push.

Badge swag

GitHub repo GitHub last commit GitHub code size in bytes GitHub license
DockerHub Docker version Image size Docker Pulls

🏷️ Version Tags: vX, vX.Y, vX.Y.Z

This action supports three tag levels for flexible versioning:

  • vX: latest patch of the major version (e.g., v1).
  • vX.Y: latest patch of the minor version (e.g., v1.2).
  • vX.Y.Z: fixed to a specific release (e.g., v1.2.3).

📖 API Reference

    - name: Run the action
      uses: devops-infra/action-terraform-copy-vars@v1.0.0
      with:
        dirs_with_modules: modules
        files_with_vars: variables.tf
        all_vars_file: all-variables.tf
        fail_on_missing: false

🔧 Input Parameters

Input Variable Required Default Description
dirs_with_modules No terraform Comma separated list of directory prefixes with modules.
files_with_vars No variables.tf Comma separated list of files containing variables in directories matching dirs_with_modules.
all_vars_file No all-variables.tf Name of a file containing base definitions of all variables.
fail_on_missing No false Whether action should fail if all_vars_file is missing some definitions from modules.

💻 Usage Examples

📝 Basic Example

Fail action if not all variables in variables.tf in terraform subdirectories match their definitions in all-variables.tf.

name: Check Terraform variables
on:
  push
jobs:
  terraform-copy-vars:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repoistory
      uses: actions/checkout@v5

    - name: Fail on different variables' definitions
      uses: devops-infra/action-terraform-copy-vars@v1.0.0
      with:
        fail_on_changes: true

🔀 Advanced Example

Copy variables definitions from all-variables.tf to all variables.tf in modules subdirectories and commit updated files back to the repository using my other action devops-infra/action-commit-push.

name: Copy Terraform variables accross modules
on:
  push
jobs:
  terraform-copy-vars:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repoistory
      uses: actions/checkout@v5

    - name: Update Terraform variables
      uses: devops-infra/action-terraform-copy-vars@v1.0.0
      with:
        dirs_with_modules: modules
        files_with_vars: variables.tf
        all_vars_file: all-variables.tf

    - name: Commit changes to repo
      uses: devops-infra/action-commit-push@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        commit_prefix: "[AUTO-VARIABLES]"

🤝 Contributing

Contributions are welcome! See CONTRIBUTING. This project is licensed under the MIT License - see the LICENSE file for details.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

💬 Support

If you have any questions or need help, please:

  • 📝 Create an issue
  • 🌟 Star this repository if you find it useful!

GitHub Action coping Terraform variables across modules is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

GitHub Action automatically copying variables definitions from a single file to many modules
v1.0.0
Latest

GitHub Action coping Terraform variables across modules is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.