{"id":13442395,"url":"https://github.com/flosell/lambdacd","last_synced_at":"2025-10-03T19:30:49.067Z","repository":{"id":20734694,"uuid":"24018946","full_name":"flosell/lambdacd","owner":"flosell","description":"a library to define a continuous delivery pipeline in code","archived":true,"fork":false,"pushed_at":"2023-01-27T10:32:48.000Z","size":21548,"stargazers_count":676,"open_issues_count":25,"forks_count":59,"subscribers_count":34,"default_branch":"master","last_synced_at":"2024-09-25T19:33:51.391Z","etag":null,"topics":["build-pipelines","cd","ci","clojure","continuous-delivery","continuous-integration","delivery-pipelines","hacktoberfest","lambdacd","library","pipeline","pipelines-as-code","tool"],"latest_commit_sha":null,"homepage":"https://www.lambda.cd/","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flosell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-14T10:08:11.000Z","updated_at":"2024-09-15T05:18:24.000Z","dependencies_parsed_at":"2023-02-15T08:02:06.906Z","dependency_job_id":null,"html_url":"https://github.com/flosell/lambdacd","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosell%2Flambdacd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosell%2Flambdacd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosell%2Flambdacd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flosell%2Flambdacd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flosell","download_url":"https://codeload.github.com/flosell/lambdacd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219876442,"owners_count":16554757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-pipelines","cd","ci","clojure","continuous-delivery","continuous-integration","delivery-pipelines","hacktoberfest","lambdacd","library","pipeline","pipelines-as-code","tool"],"created_at":"2024-07-31T03:01:45.206Z","updated_at":"2025-10-03T19:30:43.621Z","avatar_url":"https://github.com/flosell.png","language":"Clojure","readme":"\u003cimg src=\"doc/img/lambdacd-logo.png\" width=\"125px\"/\u003e\n\n# LambdaCD\n\n\n* it's a continuous delivery pipeline, in code\n* it's your own custom built Jenkins/Go/TeamCity/..., in clojure\n\n\n## Status\n\n[![Clojars Project](http://clojars.org/lambdacd/latest-version.svg)](http://clojars.org/lambdacd)\n\n[![Build Status](https://travis-ci.com/flosell/lambdacd.svg?branch=master)](https://travis-ci.com/flosell/lambdacd)\n\n## Getting started\n\n* Make sure you have [Leiningen](http://leiningen.org) and a recent version of \n  [JDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) installed\n* `lein new lambdacd \u003cNAME\u003e` will create a new pipeline-project\n* `cd \u003cNAME\u003e`\n* `lein run` downloads all dependencies and starts the server; the UI is then served on on [http://localhost:8080](http://localhost:8080)\n* your pipeline is defined in `src/\u003cNAME\u003e/`. Have a look around, change some steps or add some steps on your own\n* For more details, check out the resources and related projects below \n\n\n## Example\n\n```clojure\n;; buildsteps\n(def some-repo \"git@github.com:flosell/somerepo\")\n\n(defn wait-for-repo [_ ctx]\n  (git/wait-for-git ctx some-repo \"master\"))\n\n(defn ^{:display-type :container} with-repo [\u0026 steps]\n  (git/with-git some-repo steps))\n\n(defn run-tests [{cwd :cwd} ctx]\n  (shell/bash ctx cwd\n    \"lein test\"))\n\n(defn compile-and-deploy [{cwd :cwd} ctx]\n  (shell/bash ctx cwd\n    \"./buildscripts/compile-and-deploy.sh\"))\n\n;; the pipeline\n(def pipeline\n  `(\n     (either\n       wait-for-manual-trigger\n       wait-for-repo)\n     (with-repo\n       run-tests\n       compile-and-deploy)))\n```\n\n## Screenshot\n\n![Screenshot](doc/img/readme-screenshot.png)\n\n## Chat\n\n* `#lambdacd` on the [clojurians slack](https://clojurians.slack.com/messages/lambdacd/)\n* `#lambdacd` on [gitter](https://gitter.im/flosell/lambdacd)\n\n## Resources\n\n* [Getting Started](http://www.lambda.cd/getting-started/)\n* [FAQ](doc/FAQ.md)\n* [How to do ...](doc/howto.md)\n* [Wiki Documentation](https://github.com/flosell/lambdacd/wiki)\n* [Talk at ClojureD 2016 (Video)](https://youtu.be/XXiAS_BEDhQ)\n* Detailed Tutorial: [doc/walkthrough.md](doc/walkthrough.md)\n* A complete LambdaCD infrastructure in code: https://github.com/flosell/devops-101-lambdacd\n* Documented Sample-Code: [example/clj/todopipeline](example/clj/todopipeline)\n* Blog Post on LambdaCD at Otto including tutorial: http://dev.otto.de/2015/06/29/microservices-ci-with-lambdacd-microservices-and-continuous-integration-with-lambdacd-23/\n\n## Related projects\n\n* [lambda-ui](https://github.com/sroidl/lambda-ui): Opinionated alternative user-interface with improved usability\n* [lambdacd-git](https://github.com/flosell/lambdacd-git): Next generation of Git support for LambdaCD. Will replace the functionality in the core `lambdacd.steps.git` namespace in the future\n* [lambdacd-cctray](https://github.com/flosell/lambdacd-cctray): Support for cctray.xml to integrate LambdaCD with build monitoring tools such as [nevergreen](http://nevergreen.io/) or [CCMenu](http://ccmenu.org/)\n* [lambdacd-artifacts](https://github.com/flosell/lambdacd-artifacts): Makes arbitrary build-artifacts (test-results, binaries, ...) available on LambdaCD\n* [lambdacd-junit](https://github.com/thilo11/lambdacd-junit): Makes JUnit test reports available in LambdaCD \n* [lambdacd-cron](https://github.com/felixb/lambdacd-cron): A cron trigger for your LambdaCD\n* [lambdacd-mongodb](https://github.com/SimonMonecke/lambdacd-mongodb): Alternative persistence backend for LambdaCD, saving the pipeline state into MongoDB instead of the filesystem\n* [machroput](https://github.com/otto-de/machroput): LambdaCD-aware library simplifying deployments into a Mesos Cluster running [Marathon](https://github.com/mesosphere/marathon) or [Chronos](https://github.com/mesos/chronos)\n\n## Contribute\n\nI'd love to hear from you! If you have a question, a bug report or feature request please reach out.\n\nFor details, refer to the [contribution guide](CONTRIBUTING.md)\n\n## Development\n\nLambdaCD is built in Clojure and ClojureScript with [Leiningen](http://leiningen.org) as a build-tool.\nThe `./go` script is your main entry-point that wraps all important development tasks.\nCall it without arguments to see all the options.\n\n### General Setup \n\n* Call `./go setup` to install necessary dependencies and build everything once. \n\n### Core Development\n\n* Sources for the core of LambdaCD can be found in `src/clj`, tests in `test/clj`.\n* Run tests with `./go test-clj`\n* To run a sample-pipeline (see `example/clj`), run `./go serve`. You may have to run `./go serve-cljs` occasionally to\n  generate the frontend JS code from ClojureScript.\n* If you want the example pipeline to be green (which is not necessary for all development), you first need to setup a\n  mock-deployment environment on your machine (two VMs where we deploy a TodoMVC client and server):\n  * install [Vagrant](http://www.vagrantup.com/downloads.html)\n  * have github-access set up (you need to be able to clone with ssh)\n  * `./go setupTodopipelineEnv` starts up two VMs in vagrant where we deploy to and exports the ssh-config for them so that it can be used by the deployment scripts\n\n### Frontend Development\n\n* The frontend is written in ClojureScript using [Reagent](https://github.com/reagent-project/reagent) and [re-frame](https://github.com/Day8/re-frame)\n* Frontend resources can be found in `resources/public`, ClojureScript code in `src/cljs`, tests in `test/cljs`\n* Stylesheets are written in are in [Less](http://lesscss.org/) and can be found in `src/less`\n* ClojureScript code needs to be compiled into JS before being useful\n* In three terminals, run `./go serve` to start an example pipeline (if you want it to be green, follow the environment\n  setup above), `./go serve-cljs` to start a ClojureScript REPL and automatic code-reloading using\n  [Figwheel](https://github.com/bhauman/lein-figwheel) and `./go serve-css` to run the css autoprefixer watch\n* Run `./go test-cljs` to run frontend-tests or `./go test-cljs-auto` to start autotest\n\n\n## License\n\nCopyright © 2014 Florian Sellmayr\n\nDistributed under the Apache License 2.0\n","funding_links":[],"categories":["Clojure","clojure","CI/CD","CI"],"sub_categories":["Spring Cloud框架"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflosell%2Flambdacd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflosell%2Flambdacd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflosell%2Flambdacd/lists"}