All Projects → trivago → rumi

trivago / rumi

Licence: Apache-2.0 License
trivago continuous integration executor

Programming Languages

PHP
23972 projects - #3 most used programming language
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to rumi

prettier
🔨 Native, blazingly-fast Prettier CLI on Github Actions
Stars: ✭ 19 (-9.52%)
Mutual labels:  continuous-integration, ci
npm-audit-ci
www.npmjs.com/package/npm-audit-ci
Stars: ✭ 18 (-14.29%)
Mutual labels:  continuous-integration, ci
xray-action
... a GitHub action to import test results into "Xray" - A complete Test Management tool for Jira.
Stars: ✭ 16 (-23.81%)
Mutual labels:  continuous-integration, ci
landkid
Your friendly neighborhood async merging robot goat.
Stars: ✭ 80 (+280.95%)
Mutual labels:  continuous-integration, ci
rasa-train-test-gha
A GitHub action to run easily rasa train and rasa test in the CIs.
Stars: ✭ 26 (+23.81%)
Mutual labels:  continuous-integration, ci
flow-platform-x
Continuous Integration Platform
Stars: ✭ 21 (+0%)
Mutual labels:  continuous-integration, ci
flagsmith-nodejs-client
Flagsmith Node JS Client. Flagsmith lets you manage features flags across web, mobile and server side applications. Get builds out faster. Control who has access to new features.
Stars: ✭ 13 (-38.1%)
Mutual labels:  continuous-integration, ci
www.go.cd
Github pages repo
Stars: ✭ 39 (+85.71%)
Mutual labels:  continuous-integration, ci
drevops
💧 + 🐳 + ✓✓✓ + 🤖 + ❤️ Build, Test, Deploy scripts for Drupal using Docker and CI/CD
Stars: ✭ 55 (+161.9%)
Mutual labels:  continuous-integration, ci
arduino-lint
Tool to check for problems with Arduino projects
Stars: ✭ 63 (+200%)
Mutual labels:  continuous-integration, ci
developer-ci-benefits
Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
Stars: ✭ 29 (+38.1%)
Mutual labels:  continuous-integration, ci
arduino-lint-action
GitHub Actions action to check Arduino projects for problems
Stars: ✭ 20 (-4.76%)
Mutual labels:  continuous-integration, ci
phpci-installer
PHPCI Easy Installer for Laravel Homestead
Stars: ✭ 19 (-9.52%)
Mutual labels:  continuous-integration, ci
python-test-reporter
DEPRECATED Uploads Python test coverage data to Code Climate
Stars: ✭ 18 (-14.29%)
Mutual labels:  continuous-integration, ci
jenkinsapi
A Python API for accessing resources and configuring Hudson & Jenkins continuous-integration servers
Stars: ✭ 790 (+3661.9%)
Mutual labels:  continuous-integration, ci
github-create-release-action
Create a GitHub release from a Tag
Stars: ✭ 33 (+57.14%)
Mutual labels:  continuous-integration, ci
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (+23.81%)
Mutual labels:  continuous-integration, ci
makefiles
No description or website provided.
Stars: ✭ 23 (+9.52%)
Mutual labels:  continuous-integration, ci
swarmci
Swarm CI - Docker Swarm-based CI system or enhancement to existing systems.
Stars: ✭ 48 (+128.57%)
Mutual labels:  continuous-integration, ci
setup-scheme
Github Actions CI / CD setup for Scheme
Stars: ✭ 13 (-38.1%)
Mutual labels:  continuous-integration, ci

Build Status

rumi

rumi is a container based job execution platform. It reads and executes jobs that are defined in a .rumi.yml file in a project. The goal is it to make job execution more flexible and put the responsibility for configuration in projects into the maintainer’s hands.

Syntax

Introduction

CI jobs are grouped into stages which are executed sequentially. The jobs in each stage are executed in parallel. A failed job aborts the complete build.

Stages

stages:
  Initialisation:
    Install npm dependencies:
      ...

    Install composer dependencies:
      ...

  Tests:
    Unit tests:
      ...

    Integration tests:
      ...

    CSS lint:
      ...

The above example illustrates how jobs can be grouped into stages. "Install npm dependencies" and "Install composer dependencies" are executed at the same time. Once all jobs in the given stage are finished, the next stage is started.

You can define an unlimited amount of stages and jobs. You should try to make stage and job names self-explanatory.

Jobs

...
  Job name:
    docker:
      // docker-compose syntax
    commands: // optional
      - command one
      - command two
    entrypoint: sh // optional
    ci_image: name_of_the_container // optional
    timeout: 100 // in seconds, default 1200
  • docker (required): docker-compose syntax (https://docs.docker.com/compose/compose-file/) used to start a set of the containers. Can be either yaml definition or path to docker-compose definition file.
  • commands (optional, default: image defined command): if defined, the command will be triggered inside the container. If empty - default docker image command will be used.
  • entrypoint (optional, default: image defined entry point): equivalent to Docker entrypoint option.
  • ci_image (optional, default: first defined container): in case you don't want to use first defined container as your CI job, you can specify a name for the custom container here.

Job is marked as failed if return status of ci_image is other then zero.

Available environment variables

Rumi injects following environment variables on the test runtime to your test container:

  • GIT_COMMIT - contains current commit sha
  • GIT_BRANCH - contains current branch name
  • GIT_URL - contains url used to checkout the code

Limitations

  1. Port configuration in the yml definition is discarded. CI jobs are not able to expose ports. This is likely to change in the later versions. In case you need communication between your containers link Docker containers with each other.

  2. build flag from docker-compose syntax is not supported. You need to pre-build your image, push it to registry and use it with image flag.

Sample configurations

// todo

FAQ

How can i execute jobs locally?

It's experimental.

  1. Use below code to download and install rumi
  • linux/mac:
wget https://raw.githubusercontent.com/trivago/rumi/master/rumi
mv rumi /usr/local/bin/rumi
chmod +x /usr/local/bin/rumi
  • windows:

download https://raw.githubusercontent.com/trivago/rumi/master/rumi.bat and put it in your system PATH

  1. Run the rumi command in your project directory (where the .rumi.yml file is located).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].