Giter VIP home page Giter VIP logo

st2-packages's Introduction

Stackstorm packages build environment

Circle CI Build Status Go to Docker Hub Download deb/rpm

Highlights

  • Docker based. Leveraging docker it's possible to deliver packages for any OS distro in fast and reliable way.
  • Rake + sshkit based execution enables easy configuration via simple DSL and brings parallel task processing out of the box.
  • Test-driven workflow. Artifacts built are not only available for any enabled OS distro but at the same time tested on a bunch of platforms, providing feedback such as can be installed, services can start up, operations can be executed etc.

Overview

Packages build environment is a multi-container docker application defined and managed with docker-compose. It consists of four types of containers:

  • Packaging runner (https://quay.io/stackstorm/packagingrunner) - the main entry point, package build and test processing controller container.
  • Build environment (https://quay.io/stackstorm/packagingenv) - container where actual artifacts build takes place. It's used to bring up the build environment specific for OS distro. This means that different containers are available such as packagingenv:centos6, packagingenv:wheezy correspondingly for CentOS 6 and Debian Wheezy.
  • Test runner (https://quay.io/dennybaa/droneunit) - containers where built artifacts are tested, i.e. artifacts are installed, configuration is written and tests are performed.
  • Services - these are different containers required for testing such as rabbitmq, mongodb and postgress

Packages build environment compose application brings all-sufficient pipeline to deliver ready to use packages.

Usage

It's very simple to invoke the whole build-test pipeline. First just make sure that docker-compose.yml has your distro specification, after that issue the following commands:

# First clean out previous build containers (it's optional)
docker-compose kill
docker-compose rm -f

# We want to build packages for debian wheezy (--rm will wipe packaging runner container). However all other will remain active.
docker-compose run --rm wheezy

Execution takes a while, so grab a cup of tea or coffie and wait until it finishes. When build and test processes succeed, you'll be all to find StackStorm packages them in /tmp/st2-packages on your host machine:

ls -l1 | grep ".deb$"
-rw-r--r-- 1 root root 30872652 Feb  9 18:32 st2_1.4dev-1_amd64.deb
-rw-r--r-- 1 root root 31582068 Feb  9 18:32 st2mistral_1.3.0-1_amd64.deb

Manual testing inside the docker environment

After build and test stages finished all docker containers remain active, so you are welcome to some more in-depth testing if desired. To do so simply run:

docker ps
# Find the required testing container
# In our case it will be st2packages_wheezytest_1

# Simply exec to docker
docker exec -it st2packages_wheezytest_1 bash

Once done, you are inside the testing environment where all services are up and running. Don't forget to do (after exec):

export TERM=xterm

At this point you can do any manual testing which is required.

Installation

Current community packages are hosted on https://packagecloud.io/StackStorm. For detailed instructions how install st2 and perform basic configuration follow the instructions bellow:

License and Authors

st2-packages's People

Contributors

dennybaa avatar armab avatar kami avatar enykeev avatar lakshmi-kannan avatar manasdk avatar emedvedev avatar jjm avatar m4dcoder avatar humblearner avatar dbarrosop avatar martezr avatar

Watchers

James Cloos avatar Bibekananda Mantry 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.