An open API service indexing awesome lists of open source software.

https://github.com/Excoriate/daggerverse

A collection of Dagger modules powered by Dagger.
https://github.com/Excoriate/daggerverse

Last synced: 5 months ago
JSON representation

A collection of Dagger modules powered by Dagger.

Awesome Lists containing this project

README

        


logo

##

Daggerverse Modules ๐Ÿ“ฆ

[![๐Ÿ—๏ธ CI CodeGen Daggy](https://github.com/Excoriate/daggerverse/actions/workflows/ci-daggy-codegen.yml/badge.svg)](https://github.com/Excoriate/daggerverse/actions/workflows/ci-daggy-codegen.yml)[![CI module-template ๐Ÿงน](https://github.com/Excoriate/daggerverse/actions/workflows/ci-mod-module-template.yaml/badge.svg)](https://github.com/Excoriate/daggerverse/actions/workflows/ci-mod-module-template.yaml)

| Module | Status | What it does? |
| ---------------------------------------------- | ------ | ------------------------------------------------------------------------------- |
| [Terraform](terraform/README.md) | โœ… | ๐ŸŒ Run [Terraform](https://www.terraform.io) commands. |
| [Terratest](terratest/README.md) | โœ… | ๐Ÿงช Run [Terratest](https://terratest.gruntwork.io) commands. |
| [GitLab CICD Vars](gitlab-cicd-vars/README.md) | โœ… | โš™๏ธ Manage GitLab CI/CD variables. |
| [GoReleaser](goreleaser/README.md) | โœ… | ๐Ÿš€ Wraps [GoReleaser](https://goreleaser.com) functionality as a dagger module. |
| [TFLint](tflint/README.md) | โœ… | ๐Ÿ” Run [TFLint](https://github.com/terraform-linters/tflint) commands. |
| [GoTest](gotest/README.md) | โœ… | ๐Ÿ”‹ A batteries-included way to run Go Tests (using Go Test, and/or GoTestsum). |
| [Terragrunt](terragrunt/README.md) | โœ… | ๐Ÿ”‹ A batteries-included way to run Terragrunt commands. |
| [Gotoolbox](gotoolbox/README.md) | โœ… | ๐Ÿ› ๏ธ A toolbox for various Go utilities. |

---

## Contributions ๐Ÿค

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](./CONTRIBUTING.md).

## Tools ๐Ÿ› ๏ธ

- [Go](https://golang.org)
- [Nix](https://nixos.org) (optional, mostly for maintainers)
- [Just](https://github.com/casey/just) (optional, mostly for maintainers)

## Scaffolding ๐Ÿงฐ

New modules can be generated using **Daggy**, a [Rust](https://www.rust-lang.org) CLI tool that generates the boilerplate code for a new module. To use Daggy and create a new module, just execute:

### Dagger Module Types

- **Full**: A full-featured module with all the built-in functions and examples.

```bash
just create
```

- **Light**: A minimal version of the module with the most important built-in functions.

```bash
just createlight
```

### Dagger Module Structure ๐Ÿงฑ

#### Module Template (Full)

```text
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)

```text
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
```

## Testing and CI ๐Ÿงช

Currently, the following checks are executed on each module:

- [x] Run [GolangCI-Lint](https://golangci.com/) on the module, tests, and examples
- [x] Run `dagger call` on the module, tests, and examples
- [x] Run all the tests in the `tests/` Dagger module.
- [x] Run all the recipes in the `examples/go` Dagger module.

To run the CI checks locally, just execute:

```bash
just ci
```

To run only the tests in your module, just execute:

```bash
just test
```

To run only the Go lint checks in your module, just execute:

```bash
just lintall
```