Intro
What is togomak?
togomak is a powerful, build pipeline orchestration tool, and a drop-in replacement for your CI/CD execution environment that could run anywhere. It uses HCL (HashiCorp Configuration Language) for a declarative pipeline, parallel-by-default workflow.
togomak.hcl
togomak {
version = 2
}
locals {
tagline = "togomak is a build orchestration tool"
}
stage "greet" {
script = "echo ${ansifmt("green", local.tagline)}"
}
stage "hello" {
script = "echo Hope you have a good day!"
}
stage "sweet_container" {
depends_on = [stage.hello]
container {
image = "ubuntu:latest"
}
script = "cat /etc/os-release | grep PRETTY_NAME"
}
$ togomak
INFO [stage=greet] [+] greet
INFO [stage=hello] [+] hello
INFO [stage=hello] Hope you have a good day!
INFO [stage=greet] togomak is a build orchestration tool
INFO [stage=sweet_container] [+] sweet_container
INFO [stage=sweet_container 🐳] image ubuntu:latest does not exist, pulling...
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Pulling fs layer) [1s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Downloading) [1s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Downloading) [6s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Verifying Checksum) [9s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Download complete) [ [9s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Extracting) [9s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Pull complete) [11s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Digest: sha256:aabed3296a3d45cede1dc866a24476c4d7e093aa806263c27ddaadbdce3c1054) [11s elapsed]
INFO [stage=sweet_container 🐳] Still pulling image ubuntu:latest... (Status: Downloaded newer image for ubuntu:latest) [11s elapsed]
INFO [stage=sweet_container 🐳] PRETTY_NAME="Ubuntu 22.04.3 LTS"
INFO [stage=sweet_container 🐳] Completed pulling image ubuntu:latest in [11s elapsed]
INFO took 13.53s