No description
dev | ||
src/dda/build | ||
test/dda/build | ||
.cljstyle | ||
.dir-locals.el | ||
.envrc | ||
.gitattributes | ||
.gitignore | ||
build.clj | ||
CHANGELOG.md | ||
deps.edn | ||
LICENSE | ||
Makefile | ||
pom.xml | ||
README.md | ||
tests.edn |
build
chat over e-mail | team@social.meissa-gmbh.de | Website & Blog
Rationale
build integrates all the tools we use to work with development & clouds. We know many build tools like ant, gradle, mvn, make, leiningen or pybuilder.
But we have chosen to create & use one more due to this reasons:
- Our builds tend to get more and more complex. So we decided that implementing build is worth to use real clojure.
- We like simple setup & fast startup. For this reason we've chosen babashka
- We believe in good input validation & good messages. For this reason we use the coole clojure-spec.
- As DevOps we are using many tools, all of them should be supported:
- gitops & direnv: State of environments and systems is represented by a git repo. State is applied automatically.
- terragrunt + opentofu: for setting up the plain infrastructure around.
- docker + podman: for creating images
- c4k-* or helm: for generating kubernetes manifests
- provs: for setting up small single-node k3s clusters
- gopass: for credential management on devops computers
- cloud providers: hetzner, digitalocean or aws
Status
Unstable
Try out
{:deps {org.clojure/spec.alpha {:mvn/version "0.4.233"}
orchestra/orchestra {:mvn/version "2021.01.01-1"}
org.domaindrivenarchitecture/build {:mvn/version "0.1.1-SNAPSHOT"}}
:tasks
{plan
{:requires ([dda.build.terragrunt :as tg])
:task (tg/plan! {:name "test"
:module (first *command-line-args*)
:project-root-path "../../.."
:build-dir-name "target"
:version "4.11.8-dev"
:debug true})}
apply
{:requires ([dda.build.terragrunt :as tg])
:task (tg/apply! {:name "test"
:module (first *command-line-args*)
:project-root-path "../../.."
:build-dir-name "target"
:version "4.11.8-dev"
:debug true})}
destroy
{:requires ([dda.build.terragrunt :as tg])
:task (tg/destroy! {:name "test"
:module (first *command-line-args*)
:project-root-path "../../.."
:build-dir-name "target"
:version "4.11.8-dev"
:debug true})}}}
Development & mirrors
Development happens at: https://repo.prod.meissa.de/meissa/build
Mirrors are:
- https://codeberg.org/meissa/build (Issues and PR)
- https://gitlab.com/domaindrivenarchitecture/build (CI)
- https://github.com/DomainDrivenArchitecture/build
For more details about our repository model see: https://repo.prod.meissa.de/meissa/federate-your-repos
License
Copyright © 2024 meissa GmbH Licensed under the Apache License, Version 2.0 (the "License") Pls. find licenses of our subcomponents here