GithubHelp home page GithubHelp logo

es1o / esioci Goto Github PK

View Code? Open in Web Editor NEW

This project forked from esioci/esioci

0.0 1.0 0.0 108 KB

License: Apache License 2.0

Elixir 100.00%
elixir continuous-integration continuous-delivery

esioci's Introduction

#esioci

EsioCi is an OpenSource Continuous Integration software

Build Status Coverage Status Deps Status codebeat badge

Requirements

  • Elixir >= 1.2
  • OTP 19
  • PostgreSQL database
  • Redis database

How To Use

Installation and Configuration

  1. Download source code
  2. Configure application via ENV variables
  3. ESIOCI_API_PORT => port witch esioci starts, default is 4000
  4. ESIOCI_DB => database name, default is "esioci"
  5. ESIOCI_DB_USER => database user
  6. ESIOCI_DB_PASSWD => database password
  7. ESIOCI_DB_HOST => database host
  8. ESIOCI_POLLER_NTERVAL => poller run interval in ms, default 60000
  9. Set artifacts directory, default is /tmp/artifacts
  10. Create database: HINT: You can run dev database instance in docker: docker run --name some-postgres -p 5432:5432 -d postgres
  11. Run migration mix ecto.migrate
  12. Seed database mix run priv/repo/seeds.exs
  13. Run application screen iex -S mix run
  14. Configure github push webhook and point it to address:port/api/v1/default/bld/gh

Configuration file

All app configuration in config/config.exs, see comments for details

esioci.yaml

esioci.yaml file is a file with all builds configuration. This file should be placed in your's repository root.

Example esioci.yaml:

---
build:
  - exec: "cmd1"
  - exec: "cmd2"
artifacts: "artifacts_file.txt"

yaml commands:

  • 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

API endpoints

Builds

GET api/v1/project_name/bld/last

Returns json with last build status for project: project_name

GET api/v1/project_name/bld/build_id

Returns json with specific build

GET api/v1/project_name/bld/all

Returns json with all builds for specific project

Projects

GET api/v1/project_name

Returns json with information about specific project

GET api/v1/projects/project_id

Returns json with information about project with id

GET api/v1/projects/all

Returns json with information about all project

POST api/v1/project_name/bld/gh

Run github project

GET artifacts/build_id/build_build_id.txt

Get build log.

How To Develop

Run app first time

  1. get dependencies mix deps.get
  2. compile mix compile
  3. Run docker images with psql and Redis
  4. docker run -p 5432:5432 -d postgres:10.2
  5. docker run -d -p 6379:6379 redis
  6. Create database mix ecto.create
  7. Migrate database mix ecto.migrate
  8. Seed database mix run priv/repo/seeds.exs
  9. run iex -S mix run

Unit tests

  1. Prepare test database
  2. MIX_ENV=test mix ecto.create
  3. MIX_ENV=test mix ecto.migrate
  4. MIX_ENV=test mix run priv/repo/seeds.exs
  5. Run unit tests and generate html coverage report mix coveralls.html
  6. Coverage html report in cover directory

Changelog:

Changelog

Authors

Grzegorz "esio" Eliszewski - http://esio.one.pl

esioci's People

Contributors

es1o avatar

Watchers

 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.