No description
Find a file
2024-08-05 09:16:55 +02:00
dev template 2024-07-26 17:46:37 +02:00
src/dda/build add ! for sideeffect 2024-08-02 16:03:58 +02:00
test/dda/build added apply & destroy 2024-08-02 14:14:34 +02:00
.cljstyle template 2024-07-26 17:46:37 +02:00
.dir-locals.el template 2024-07-26 17:46:37 +02:00
.envrc add envrc 2024-07-26 17:47:40 +02:00
.gitattributes template 2024-07-26 17:46:37 +02:00
.gitignore add envrc 2024-07-26 17:47:40 +02:00
build.clj initial 2024-07-26 17:46:51 +02:00
CHANGELOG.md template 2024-07-26 17:46:37 +02:00
deps.edn refactor for aggregate boundaries 2024-07-27 16:31:54 +02:00
LICENSE template 2024-07-26 17:46:37 +02:00
Makefile template 2024-07-26 17:46:37 +02:00
pom.xml initial 2024-07-26 17:46:51 +02:00
README.md add doc 2024-08-05 09:16:55 +02:00
tests.edn template 2024-07-26 17:46:37 +02:00

build

Clojars Project pipeline status

DeltaChat chat over e-mail | team@social.meissa-gmbh.de 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:

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