Release Automation
IDLC uses release-please to automate versioning and changelog generation based on Conventional Commits.
How It Works
- Developers write commits following the Conventional Commits specification
release-pleaseanalyzes commits and proposes release PRs- When merged, it creates GitHub releases with semantic version tags
- Modules and solutions are published to the private registry (Terrareg)
Configuration
release-please-config.json
{
"release-type": "terraform-module",
"separate-pull-requests": false,
"include-v-in-tag": true,
"tag-separator": "@",
"plugins": [
{ "type": "sentence-case" }
],
"packages": {
"modules/s3/bucket": { "package-name": "s3-bucket" },
"modules/rds/postgres-database": { "package-name": "rds-postgres-database" },
"solutions/my-app": { "package-name": "sol-my-app" }
}
}
.release-please-manifest.json
Tracks current versions for each package:
{
"modules/s3/bucket": "1.1.0",
"modules/rds/postgres-database": "1.3.0",
"solutions/my-app": "2.1.0"
}
Versioning Convention
- Modules use
<module-name>@v<version>tags (e.g.,s3-bucket@v1.1.0) - Solutions use
sol-<name>@v<version>tags (e.g.,sol-my-app@v2.1.0) - All versions follow Semantic Versioning