Skip to content
This repository has been archived by the owner on Jan 11, 2022. It is now read-only.

spawnfest/crash

Repository files navigation

Crash

Crash from Crash Bandicoot™

Crash is a simple (distributed) docker-on-docker Continuous Integration system written in Elixir - SpawnFest 2021

CI

Requirements

  • docker 20+
  • docker-compose 1.29+
  • GNU make 4+

Development links

Getting started

make commands

build                          Build all services containers
check                          Execute static code analysis
clean                          Shoutdown services
commit                         Execute dynamic commit generation
compile                        Compile crash application
coverage                       Execute code coverage
format-check                   Execute code format verification
format                         Execute code formatting
halt                           Shoutdown all services containers
install-deps                   Install crash dependencies
master-node                    Start master node
node-one                       Start first node connected to master
node-two                       Start second node connected to master
shell                          Enter into crash service
shell-node                     Enter into crash service with beam local-node name
start                          Start application
test                           Execute crash suite test
up                             Start all services

How to use

setup the project

make init

run a single instance

make start

simulate commit request

make commit 

run multiple instances

execute the following commands in separate sessions

make master-node
make node-one
make node-two

Example multinode

simulate commit request

make commit 

Example build

Improvements / Missing parts / Bugs

  • add more integration / unit tests
  • improve error handling inside gensever
  • improve data visualization on UI
  • add opentelemetry stuff
  • with four or more builds the UI is broken
  • fix mutation testing in CI
  • introduce Chaos Monkey testing
  • add persistent builds through data storage (mnesia, postgres, etc.)

Releases

No releases published

Packages

No packages published

Languages