SideBoom

Creating and maintaining your projects CI/CD specifications with a programming language instead of a markup language.

Installation

Add this line to your application's Gemfile:

gem 'side_boom'

And then execute:

$ bundle exec sideboom

Usage

Examples are found in the Examples directory, and as new features become available these will be expanded. But just to show:

# Save this to .sideboom
# Generate output with `sideboom`
SideBoom::Pipeline.define('.gitlab-ci.yml') do
  RUBY_VERSIONS = %w[2.3 2.4 2.5 rc]

  before_script ['bundle -j 4']
  script ['bundle exec rspec']

  stage 'test' do
    RUBY_VERSIONS.each do |version|
      job "rspec ruby #{version}" do
        image "ruby:#{version}"

        allow_failure! if version == 'rc'
      end
    end
  end
end
# Generated by SideBoom
---
stages:
- test
rspec ruby 2.3:
  image: ruby:2.3
  stage: test
rspec ruby 2.4:
  image: ruby:2.4
  stage: test
rspec ruby 2.5:
  image: ruby:2.5
  stage: test
rspec ruby rc:
  image: ruby:rc
  allow_failure: true
  stage: test

TODO

  • [ ] Better documentation, now is just an example
  • [ ] Support for caching
  • [ ] Support for artifacts
  • [ ] Support advanced features, like services and dependencies