#esioci
EsioCi is an OpenSource Continuous Integration software
- Elixir >= 1.2
- OTP 19
- PostgreSQL database
- Redis database
- Download source code
- Configure application via ENV variables
- ESIOCI_API_PORT => port witch esioci starts, default is 4000
- ESIOCI_DB => database name, default is "esioci"
- ESIOCI_DB_USER => database user
- ESIOCI_DB_PASSWD => database password
- ESIOCI_DB_HOST => database host
- ESIOCI_POLLER_NTERVAL => poller run interval in ms, default 60000
- Set artifacts directory, default is /tmp/artifacts
- Create database:
HINT: You can run dev database instance in docker:
docker run --name some-postgres -p 5432:5432 -d postgres
- Run migration
mix ecto.migrate
- Seed database
mix run priv/repo/seeds.exs
- Run application
screen iex -S mix run
- Configure github push webhook and point it to
address:port/api/v1/default/bld/gh
All app configuration in config/config.exs, see comments for details
esioci.yaml file is a file with all builds configuration. This file should be placed in your's repository root.
---
build:
- exec: "cmd1"
- exec: "cmd2"
artifacts: "artifacts_file.txt"
- build: master build configuration
- exec: command to execute, supports multiple commands. Each command will be execute in order from up to down in file.
- artifacts: one file or directory, or pattern to copy to artifacts directory
Returns json with last build status for project: project_name
Returns json with specific build
Returns json with all builds for specific project
Returns json with information about specific project
Returns json with information about project with id
Returns json with information about all project
Run github project
Get build log.
- get dependencies
mix deps.get
- compile
mix compile
- Run docker images with psql and Redis
docker run -p 5432:5432 -d postgres:10.2
docker run -d -p 6379:6379 redis
- Create database
mix ecto.create
- Migrate database
mix ecto.migrate
- Seed database
mix run priv/repo/seeds.exs
- run
iex -S mix run
- Prepare test database
MIX_ENV=test mix ecto.create
MIX_ENV=test mix ecto.migrate
MIX_ENV=test mix run priv/repo/seeds.exs
- Run unit tests and generate html coverage report
mix coveralls.html
- Coverage html report in cover directory
Grzegorz "esio" Eliszewski - http://esio.one.pl