Module | Status | What it does? |
---|---|---|
Terraform | ✅ | 🌍 Run Terraform commands. |
Terratest | ✅ | 🧪 Run Terratest commands. |
GitLab CICD Vars | ✅ | ⚙️ Manage GitLab CI/CD variables. |
GoReleaser | ✅ | 🚀 Wraps GoReleaser functionality as a dagger module. |
TFLint | ✅ | 🔍 Run TFLint commands. |
GoTest | ✅ | 🔋 A batteries-included way to run Go Tests (using Go Test, and/or GoTestsum). |
Terragrunt | ✅ | 🔋 A batteries-included way to run Terragrunt commands. |
Gotoolbox | ✅ | 🛠️ A toolbox for various Go utilities. |
This is a mono-repo, and each module is a separate Go module. To contribute to a module, first of all read the contribution guidelines.
New modules can be generated using Daggy, a Rust CLI tool that generates the boilerplate code for a new module. To use Daggy and create a new module, just execute:
- Full: A full-featured module with all the built-in functions and examples.
just create <module-name>
- Light: A minimal version of the module with the most important built-in functions.
just createlight <module-name>
module-template
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── apis.go
├── clis.go
├── cloud.go
├── commands.go
├── config.go
├── container_base.go
├── content.go
├── dagger.go
├── dagger.json
├── envvars.go
├── err.go
├── examples
│ └── go
│ ├── .gitattributes
│ ├── .gitignore
│ ├── dagger.json
│ ├── go.mod
│ ├── go.sum
│ ├── main.go
│ └── testdata
│ └── common
│ ├── README.md
│ └── test-file.yml
├── go.mod
├── go.sum
├── golang.go
├── http.go
├── iac_terraform.go
├── iac_terragrunt.go
├── install.go
├── main.go
├── server_go.go
├── tests
│ ├── .gitattributes
│ ├── .gitignore
│ ├── apis.go
│ ├── cli.go
│ ├── cloud.go
│ ├── container_base.go
│ ├── dagger.go
│ ├── dagger.json
│ ├── err.go
│ ├── go.mod
│ ├── go.sum
│ ├── golang.go
│ ├── http.go
│ ├── iac_terraform.go
│ ├── iac_terragrunt.go
│ ├── install.go
│ ├── main.go
│ ├── server_go.go
│ ├── testdata
│ │ ├── apko-presets
│ │ │ ├── base-alpine.yaml
│ │ │ └── base-wolfi.yaml
│ │ ├── common
│ │ │ ├── README.md
│ │ │ └── test-file.yml
│ │ ├── golang-server-http
│ │ │ ├── Dockerfile
│ │ │ ├── Makefile
│ │ │ ├── go.mod
│ │ │ ├── go.sum
│ │ │ └── main.go
│ │ └── golang
│ │ └── main.go
│ └── vcs.go
└── vcs.go
module-template-light
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── apis.go
├── commands.go
├── config.go
├── container_base.go
├── content.go
├── dagger.json
├── err.go
├── examples
│ └── go
│ ├── .gitattributes
│ ├── .gitignore
│ ├── dagger.json
│ ├── go.mod
│ ├── go.sum
│ ├── main.go
│ └── testdata
│ └── common
│ ├── README.md
│ └── test-file.yml
├── go.mod
├── go.sum
├── golang.go
├── install.go
├── main.go
└── tests
├── .gitattributes
├── .gitignore
├── apis.go
├── container_base.go
├── dagger.json
├── err.go
├── go.mod
├── go.sum
├── golang.go
├── install.go
├── main.go
└── testdata
├── apko-presets
│ ├── base-alpine.yaml
│ └── base-wolfi.yaml
├── common
│ ├── README.md
│ └── test-file.yml
├── golang-server-http
│ ├── Dockerfile
│ ├── Makefile
│ ├── go.mod
│ ├── go.sum
│ └── main.go
└── golang
└── main.go
Currently, the following checks are executed on each module:
- Run GolangCI-Lint on the module, tests, and examples
- Run
dagger call
on the module, tests, and examples - Run all the tests in the
tests/
Dagger module. - Run all the recipes in the
examples/go
Dagger module.
To run the CI checks locally, just execute:
just ci <module-name>
To run only the tests in your module, just execute:
just test <module-name>
To run only the Go lint checks in your module, just execute:
just lintall <module-name>