You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplify the management of Terraform modules in your monorepo with this **GitHub Action**, designed to automate
21
-
module-specific versioning and releases. By streamlining the Terraform module release process, this action allows you to
22
-
manage multiple modules in a single repository while still maintaining independence and flexibility. Additionally, it
23
-
generates a beautifully crafted wiki for each module, complete with readme information, usage examples, Terraform-docs
24
-
details, and a full changelog.
25
-
26
-
## Key Features
27
-
28
-
-**Efficient Module Tagging**: Module tags are specifically designed to only include the current Terraform module
29
-
directory (and nothing else), thereby dramatically decreasing the size and improving Terraform performance.
30
-
-**Automated Release Management**: Identifies Terraform modules affected by changes in a pull request and determines
31
-
the necessary release type (major, minor, or patch) based on commit messages.
32
-
-**Versioning and Tagging**: Calculates the next version tag for each module and commits, tags, and pushes new versions
33
-
for each module individually.
34
-
-**Release Notes and Comments**: Generates a pull request comment summarizing module changes and release types, and
35
-
creates a GitHub release for each module with a dynamically generated description.
36
-
-**Wiki Integration**: Updates the wiki with new release information, including:
37
-
- README.md information for each module
38
-
- Beautifully crafted module usage examples
39
-
-`terraform-docs` details for each module
40
-
- Full changelog for each module
41
-
-**Deletes Synced**: Automatically removes tags from deleted Terraform modules, keeping your repository organized and
42
-
up-to-date.
43
-
-**Flexible Configuration**: Offers advanced input options for customization, allowing you to tailor the action to your
44
-
specific needs.
20
+
Simplify the management of Terraform modules in your monorepo with this **GitHub Action**. It automates module-specific
21
+
versioning and releases by creating proper Git tags and GitHub releases based on your commit messages. Each module
22
+
maintains independence while living in the same repository, with proper isolation for clean dependency management.
23
+
Additionally, the action generates a beautifully crafted wiki for each module, complete with readme information, usage
24
+
examples, Terraform-docs details, and a full changelog.
25
+
26
+
## 🚀 Features
27
+
28
+
-**Efficient Module Tagging** – Only includes module directory content, dramatically improving Terraform performance.
29
+
-**Smart Versioning** – Automatically determines release types (major, minor, patch) based on commit messages.
30
+
-**Comprehensive Wiki** – Generates beautiful documentation with usage examples, terraform-docs output, and full
31
+
changelogs.
32
+
-**Release Automation** – Creates GitHub releases, pull request comments, and version tags with minimal effort.
33
+
-**Self-Maintaining** – Automatically removes tags from deleted modules, keeping your repository clean and organized.
34
+
-**100% GitHub Native** – No external dependencies or services required for modules or operation, everything stays
35
+
within your GitHub ecosystem.
36
+
-**Zero Configuration** – Works out-of-the-box with sensible defaults for immediate productivity.
37
+
-**Flexible & Extensible** – Customizable settings to precisely match your team's specific workflow requirements.
45
38
46
39
## Demo
47
40
@@ -180,10 +173,38 @@ configuring the following optional input parameters as needed.
180
173
| `disable-wiki` | Whether to disable wiki generation for Terraform modules | `false` |
181
174
| `wiki-sidebar-changelog-max` | An integer that specifies how many changelog entries are displayed in the sidebar per module | `5` |
182
175
| `disable-branding` | Controls whether a small branding link to the action's repository is added to PR comments. Recommended to leave enabled to support OSS. | `false` |
176
+
| `module-path-ignore` | Comma separated list of module paths to completely ignore (relative to working directory). This will prevent any versioning, release, or documentation for these modules. | `` (empty) |
183
177
| `module-change-exclude-patterns` | A comma-separated list of file patterns to exclude from triggering version changes in Terraform modules. Patterns follow glob syntax (e.g., `.gitignore,_.md`) and are relative to each Terraform module directory. Files matching these patterns will not affect version changes. **WARNING**: Avoid excluding '`_.tf`' files, as they are essential for module detection and versioning processes. | `.gitignore, *.md, *.tftest.hcl, tests/**` |
184
178
| `module-asset-exclude-patterns` | A comma-separated list of file patterns to exclude when bundling a Terraform module for tag/release. Patterns follow glob syntax (e.g., `tests/\*\*`) and are relative to each Terraform module directory. Files matching these patterns will be excluded from the bundled output. | `.gitignore, *.md, *.tftest.hcl, tests/**` |
185
179
| `use-ssh-source-format` | If enabled, all links to source code in generated Wiki documentation will use SSH standard format (e.g., `git::ssh://git@github.com/owner/repo.git`) instead of HTTPS format (`git::https://github.com/owner/repo.git`) | `false` |
186
180
181
+
### Understanding the filtering options
182
+
183
+
- **`module-path-ignore`**: Completely ignores specified module paths. Any module whose path matches any pattern in this
184
+
list will not be processed at all by the action. This is useful for:
185
+
186
+
- Excluding example modules (e.g., `**/examples/**`)
0 commit comments