项目作者: muguangyi

项目描述 :
Asymmetric CI/CD framework.
高级语言: Go
项目地址: git://github.com/muguangyi/bubble.git
创建时间: 2019-12-02T10:08:31Z
项目社区:https://github.com/muguangyi/bubble

开源协议:MIT License

下载


Bubble

Build Status codecov

An Asymmetric Continuous Integration Framework.

Background

If any CI machine could run any type of job, there is a precondition: All machines must have the same environment, like softwares, etc. But for small team/company, it’s hard to maintain so many machines with different CI requirement. Use Unity engine as an example, it will ship many versions every year, and different teams may use different version of Unity. Trying to setup CI cluster is really hard since every machine should install all possible versions of Unity. Another option is one machine only handle limited jobs to reduce the dependency of the environment, but the disadvantage is the physics resources can’t be used fully and less flexable.

Bubble wants to setup more flexible solution. It could split a job to separated steps and execute them on different machine. Also every machine could have different environment, and Bubble could collect the ability of every different machine and decide where to execute.

bubble

Features

  • Job is splittable.
  • Distribute job dynamically.
  • Working node is self-descriptive.
  • Buildin many actions: shell, zip, ftp, unity, email notification, etc.
  • Support variable and methods.
  • Job tracking, like duration.
  • Monitor working nodes.

Install

  • Download target binary release.
  • Uncompress to local folder.

Quick Start

There are two type nodes: Master and Worker.

Concept Description
Master The master node could parse and separate job to steps (Action), and distribute to working node.
Worker The real working node that could handle action execution and sync the result to master.

Precondition

  • Start Redis local firstly.

① Run master

  • Navigate to master folder.
  • Run master.

    Windows:

    1. > bubble-master.exe

    MacOS/Linux:

    1. > ./bubble-master

② Run worker

  • Navigate to worker folder.
  • Run worker.

    Windows:

    1. > bubble-worker.exe

    MacOS/Linux:

    1. > ./bubble-worker

③ Visit in Browser

Visit localhost in browser and show the following result. Congrats! Bubble is ready.

result

④ First Job

  • Input a job name, like Test.
  • Press CREATE.

first-job

⑤ Run Job

  • Press Setting to check the Bubble script.

    1. # .bubble.yml
    2. -
    3. action: shell
    4. script:
    5. - echo Hello Bubble!
  • Press Trigger to execute the job.

Documentation

Detail information please refer to Wiki.

Maintainer

@MuGuangyi

License

MIT © MuGuangyi