No description
  • Rust 99.7%
  • HCL 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
vop 3450d0a81f
All checks were successful
buildOnDev / build (push) Successful in 1m30s
Merge pull request 'terragrunt-sub-cmd' (#3) from terragrunt-sub-cmd into main
Reviewed-on: #3
2026-09-09 12:16:59 +00:00
.forgejo streamline build 2026-08-27 08:26:43 +02:00
.vscode start with target_dir impl 2026-05-21 17:53:24 +02:00
doc update doc 2026-08-20 11:02:05 +02:00
src add value hints 2026-09-09 13:03:27 +02:00
tests accept multiple image configs 2026-08-31 11:08:39 +02:00
.gitignore ignore lock 2026-08-27 08:01:58 +02:00
Cargo.lock tempfile no longer needed 2026-08-27 08:00:18 +02:00
Cargo.toml tempfile no longer needed 2026-08-27 08:00:18 +02:00
publish.yaml add release creation 2026-07-19 18:07:40 +02:00
README.md Merge branch 'main' into feat/image 2026-08-26 08:58:01 +02:00

dda-build-rust

dda-build-rust is a devops orchestration tool.

Try out

Build binary

rustup toolchain install
rustup default

cargo build

Run demo

Prerequisite: terragrunt etc is installed

The following commands runs a demo (without remote impact):

cd tests
../target/debug/dbr plan mymodule
../target/debug/dbr apply mymodule    # press enter on question
../target/debug/dbr destroy mymodule  # press enter on question

Install

cargo install --path . installs the binary under ~/.cargo/bin/

Alternatively, build with cargo build --release and copy the binary to your usual binary folder (e.g. /usr/local/bin).

CLI

General usage:

Usage: dbr [OPTIONS] <COMMAND>

Commands:
  plan
  apply
  destroy
  image
  help     Print this message or the help of the given subcommand(s)

Options:
  -b, --build-config-path <BUILD_CONFIG_PATH>
          Filename (and optional path) of build-config [default: ""]
  -d, --dry-run-build
          Prints commands without execution
  -h, --help
          Print help
  -V, --version
          Print version

Usage of terragrunt commands (e.g. command plan):

Usage: dbr plan [OPTIONS] <MODULE_PATH>

Arguments:
  <MODULE_PATH>

Options:
  -b, --build-config-path <BUILD_CONFIG_PATH>
          Filename (and optional path) of build-config [default: ""]
  -d, --dry-run-build
          Prints commands without execution
  -h, --help
          Print help

Details:

  • <MODULE_PATH>: directory, where the terragrunt source files (*.tf) and potentially other source files are located
  • -b <BUILD_CONFIG_PATH> (optional) name of the configuration file (with or without path) which contains additional configuration parameters, see below.

Usage of image commands:

Usage: dbr image [OPTIONS] <COMMAND>

Commands:
  build
  test
  publish
  help     Print this message or the help of the given subcommand(s)

Options:
  -b, --build-config-path <BUILD_CONFIG_PATH>
          Filename (and optional path) of build-config [default: ""]
      --dry-run-build
          Prints commands without execution (alias) [alias: --db]
  -h, --help
          Print help

Usage of image subcommands:

Usage: dbr image build [OPTIONS] [IMAGE_PATH]

Arguments:
  [IMAGE_PATH]  path to image folder [default: .]

Options:
  -c, --config-filename <CONFIG_FILENAME>
          Filename (and optional path) of image configfile [default: image-config.yaml]
  -b, --build-config-path <BUILD_CONFIG_PATH>
          Filename (and optional path) of build-config [default: ""]
      --dry-run-build
          Prints commands without execution (alias) [alias: --db]
  -h, --help
          Print help

Format of build-config-file

project_root_path: String # optional; if empty, then "/tmp" is used (???)
build_dir_name: String # optional; if empty, then "target" is used

These fields are used to calculate the temporary directory: [project_root_path]/[build_dir_name]

Example:

project_root_path: “myproject/subfolder”
build_dir_name: “build”

will result in temporary directory: myproject/subfolder/build

Format if image-config.yaml

name: dda-build-graal
version: 2.1.2-dev
username: !env USERNAME
password: !gopass gopass_demo_entry

Used to tag the image as <name>:<version>

Structure of the image folder

── infrastructure
│   └── image-dir #usually name of the image
│       ├── image-config.yaml
│       ├── image
│       │   ├── Dockerfile
│       ├── test
│       │   ├── Dockerfile

Auto-completion

If the dbr binary is in your PATH (such as in /usr/local/bin), you can enable Bash auto-completion by running:

echo 'command -v dbr &>/dev/null && source <(dbr completions)' > ~/.bashrc.d/dda-build-rust.sh

This installs auto-completion for the current user. It dynamically loads the completions for each new shell session. (It assumes that your .bashrc file automatically loads scripts from the ~/.bashrc.d/ folder.).

Alternatively, you can enable it only for your current terminal session by running:

source <(dbr completions)