Coder Social home page Coder Social logo

redvox / lambdacd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flosell/lambdacd

0.0 2.0 0.0 14.97 MB

a library to define a continuous delivery pipeline in code

License: Apache License 2.0

Clojure 92.51% Shell 2.01% CSS 0.87% HTML 0.25% JavaScript 4.36%

lambdacd's Introduction

LambdaCD

  • it's a continuous delivery pipeline, in code
  • it's your own custom built Jenkins/Go/TeamCity/..., in clojure

Status

Clojars Project

Build Status

This project is still in it's early phase, don't rely on everything working flawlessly. There will be bugs, there will be missing features, things will change and things will look ugly.

However, people do use LambdaCD in their day to day work and are happy it, so give it a try! And if you notice something, please open bug reports, feature requests or just give feedback!

Usage

  • lein new lambdacd <NAME> will create a new pipeline-project
  • lein ring server from the project folder starts the server and opens the the UI for your pipeline
  • your pipeline is defined in src/<NAME>/. Have a look around, change some steps or add some steps on your own.

Example

;; buildsteps
(def some-repo "[email protected]:flosell/somerepo")

(defn wait-for-repo [_ ctx]
  (git/wait-for-git ctx some-repo "master"))

(defn ^{:display-type :container} with-repo [& steps]
  (git/with-git some-repo steps))

(defn run-tests [{cwd :cwd} ctx]
  (shell/bash ctx cwd
    "lein test"))

(defn compile-and-deploy [{cwd :cwd} ctx]
  (shell/bash ctx cwd
    "./buildscripts/compile-and-deploy.sh"))

;; the pipeline
(def pipeline
  `(
     (either
       wait-for-manual-trigger
       wait-for-repo)
     (with-repo
       run-tests
       compile-and-deploy)
   ))

Resources

Related projects

Development

  • ./go is your starting point. Run it without arguments to see all the options, e.g.:
    • ./go testall runs all tests
    • ./go serve starts a server and opens pipeline-view showing the example-pipeline in your browser.
  • if you want to run the example-pipeline contained in the code successfully, you first need to setup a mock-deployment environment on your machine (two VMs where we deploy a TodoMVC client and server):
    • install Vagrant
    • have github-access set up (you need to be able to clone with ssh)
    • ./go setup 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

Contribute

  • File bug reports, give feedback
  • Send Pull Requests, or if you are missing features (support for a different version control system, nicer syntactic sugar, ...) consider creating an extension library.

License

Copyright © 2014 Florian Sellmayr

Distributed under the Apache License 2.0

lambdacd's People

Contributors

flosell avatar alphaone avatar

Watchers

James Cloos avatar Jens Gohl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.