GithubHelp home page GithubHelp logo

buildenv's Introduction

========== Buildenv

Buildenv is a simple tool to perform a series of steps based on a YAML file. The reason for buildenv is because we use Jenkins and the flow groovy DSL to perform some steps. This works well, but it requires you run the flow within Jenkins. Buildenv aims to provide similar semantics to run the steps on your local machine.

Usage

The essence of buildenv is the steps YAML file. Here is an example

---
- Name: Do it
  Command: echo "Doing it!"

- Name: build backend
  Parallel: true
  Steps:

    - Name: build foo
      Command: echo "make foo"

    - Name: build bar
      Command: echo "make bar"

    - Name: build baz
      Command: echo "make baz"

- Name: Wrap up
  Command: echo "uploading artifacts"

You can then run the steps via buildenv --steps steps.yml. It will run the parallel steps in parallel and wait before finishing up any other steps.

Buildenv is focused on calling commands, therefore if you wanted to distribute the tasks over a cluster of machine (like Jenkins flow), you can build that into your commands. For example, if you configured your environment to use a docker swarm, you could use docker run commands on the swarm and utilize it as a cluster.

Status

Buildenv essentially works, but there are somethings I'd like to add:

  • retries
  • configure stop or continue on failure
  • colored output to differentiate between the different steps
  • better logging / reporting

buildenv's People

Contributors

ionrock avatar

Watchers

 avatar  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.