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 apply
export ENV_FILE=.env.override
make apply
- name: Terraform apply
run: |
echo "${{ secrets.ENV_PRODUCTION }}" > .env.override
ENV_FILE=.env.override make apply
Stages 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_bucket
variable based),make init
- Executeterraform init
for modules located in./terraform
inside docker container,make plan
- Executeterraform plan
for modules located in./terraform
inside docker container,make apply
- Executeterraform apply
for modules located in./terraform
inside docker container,make destroy
- Executeterraform destroy
for modules located in./terraform
inside docker container.
./terraform
terraform related resources, workdir for compose-containers,./build/compose.yml
each step contains its own docker container,./Makefile
entrypoint,./build/.env
default 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.