You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.3 KiB
32 lines
1.3 KiB
(ns wanijo-pipeline.core
|
|
(:require
|
|
[wanijo-pipeline.pipeline :as pipeline]
|
|
[wanijo-pipeline.ui-selection :as ui-selection]
|
|
[org.httpkit.server :as http-kit]
|
|
[lambdacd.runners :as runners]
|
|
[lambdacd.core :as lambdacd]
|
|
[clojure.tools.logging :as log])
|
|
(:import (java.nio.file.attribute FileAttribute)
|
|
(java.nio.file Files LinkOption))
|
|
(:gen-class))
|
|
|
|
(defn- create-temp-dir []
|
|
(str (Files/createTempDirectory "lambdacd" (into-array FileAttribute []))))
|
|
|
|
(defn -main [& args]
|
|
(let [;; the home dir is where LambdaCD saves all data.
|
|
;; point this to a particular directory to keep builds around after restarting
|
|
home-dir (create-temp-dir)
|
|
config {:home-dir home-dir
|
|
:name "wanijo pipeline"}
|
|
;; initialize and wire everything together
|
|
pipeline (lambdacd/assemble-pipeline pipeline/pipeline-def config)
|
|
;; create a Ring handler for the UI
|
|
app (ui-selection/ui-routes pipeline)]
|
|
(log/info "LambdaCD Home Directory is " home-dir)
|
|
;; this starts the pipeline and runs one build after the other.
|
|
;; there are other runners and you can define your own as well.
|
|
(runners/start-one-run-after-another pipeline)
|
|
;; start the webserver to serve the UI
|
|
(http-kit/run-server app {:port 30500})))
|