Asymmetric CI/CD framework.
An Asymmetric Continuous Integration Framework.
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.
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. |
Run master.
Windows:
> bubble-master.exe
MacOS/Linux:
> ./bubble-master
Run worker.
Windows:
> bubble-worker.exe
MacOS/Linux:
> ./bubble-worker
Visit localhost in browser and show the following result. Congrats! Bubble is ready.
CREATE
.Press Setting
to check the Bubble script.
# .bubble.yml
-
action: shell
script:
- echo Hello Bubble!
Press Trigger
to execute the job.
Detail information please refer to Wiki.
MIT © MuGuangyi