This repository serves as a generic terraform template, enhanced with a Makefile and Docker Compose for streamlined setup and usage.
utilizable/github-actions-semver-tagging
- Requirements
- Quick start
- Module options
- Configuration
- Makefile stages
- Repository structure
- Versioning model
Make sure you have installed both - latest docker and gnu make!
- Clone repository
- adjust .env
- execute
make init
Module is based on example provider.
# ./terraform/main.tf
...# ./build/.env
...You can overload default .env configuration file using ENV_FILE variable.
ENV_FILE=.env.override make applyexport ENV_FILE=.env.override
make apply- name: Terraform apply
run: |
echo "${{ secrets.ENV_PRODUCTION }}" > .env.override
ENV_FILE=.env.override make applyStages definied in makefile.
make prune- Wipe all docker-related resources associated with the current project,make show- Show executed containers (dokcer-compose ps -a),make backend- Setup MinIO S3 backend with pre-definied bucket (backend_bucketvariable based),make init- Executeterraform initfor modules located in./terraforminside docker container,make plan- Executeterraform planfor modules located in./terraforminside docker container,make apply- Executeterraform applyfor modules located in./terraforminside docker container,make destroy- Executeterraform destroyfor modules located in./terraforminside docker container.
./terraformterraform related resources, workdir for compose-containers,./build/compose.ymleach step contains its own docker container,./Makefileentrypoint,./build/.envdefault configurations.
Versions have the format <MAJOR>.<MINOR>(.<PATCH>)? where:
<MAJOR>Triggered manualy from default branch,<MINOR>Triggered automaticly after each push from default branch,<PATCH>Triggered automaticly after each push from fix/[0-9].[0-9].x branch.