No description
  • Rust 99.8%
  • HCL 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
paul-voel 46cbcbd1dd
All checks were successful
buildOnDev / build (push) Successful in 3m9s
Snapshot: 0.1.10-SNAPSHOT
2026-10-30 12:02:28 +01:00
.forgejo fix pipeline 2026-10-30 12:02:10 +01:00
.vscode start with target_dir impl 2026-05-21 17:53:24 +02:00
doc wip: rework 2026-10-14 15:34:28 +02:00
src add more test 2026-10-19 11:29:50 +02:00
tests add lib for integration tests 2026-10-19 11:29:34 +02:00
.gitignore add integration test 2026-09-28 14:03:27 +02:00
Cargo.toml Snapshot: 0.1.10-SNAPSHOT 2026-10-30 12:02:28 +01:00
publish.yaml fix pipeline 2026-10-30 12:02:10 +01:00
README.md update docs 2026-10-01 11:58:30 +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 subcommands:

Usage: dbr image [build/test/publish] [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

Usage of release subcommands:

Usage: dbr release [patch/minor/major] [OPTIONS]

Options:
      --primary-build-file <PRIMARY_BUILD_FILE>
          Path to Build File (e.g. Cargo.toml) [default: ""]
      --secondary-build-files <SECONDARY_BUILD_FILES>...
          Comma separated list of secondary build files
  -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
primary_build_file: String # optional; 
secondary_build_files: # optional;
   - String
   - String

The fields project_root_path and build_dir_name are used to calculate the temporary directory: [project_root_path]/[build_dir_name]. primary_build_file is used by the release command to determine the projects version and bump the version in the primary build file and the provided secondary build files.

Example:

project_root_path: “myproject/subfolder”
build_dir_name: “build”
primary_build_file: "Cargo.toml"
secondary_build_files:
   - infrastructure/image-dir/image-config.yaml
   - module/build.py

will result in temporary directory: myproject/subfolder/build

Format of 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)