/concord

Concord - workflow orchestration and continuous deployment management

Primary LanguageJavaOtherNOASSERTION

Concord

Concord is a workflow server. It is the orchestration engine that connects different systems together using scenarios and plugins created by users.

Building

Dependencies:

git clone ...
cd concord
./mvnw clean install -DskipTests

Docker Images

You can build docker images using this commands:

./mvnw clean install -DskipTests -Pdocker

Console

cd ./console2
npm install # Install dependencies

Verify that the proxy property in console2/package.json is set to the Server's API address.

Start the console in dev mode by running:

npm run start

Integration tests

Prerequisites

Prerequisites:

  • Git 2.3+
  • Docker, listening on tcp://127.0.0.1:2375;
  • Ansible 2.6.0+ must be installed and available in $PATH. See the official documentation;
  • ujson python module is required. It can be installed using pip install ujson or a system package manager;
  • requests python module is required. It can be installed using pip install requests or a system package manager;
  • Java must be available in $PATH as java;
  • Chrome WebDriver available in $PATH.

Running tests

Integration tests are disabled by default. Use the it profile to enable them:

./mvnw verify -Pit

This will run ITs agains the locally running server and the agent. To automatically start and stop the server and the agent using docker, use the docker profile:

./mvnw verify -Pit -Pdocker

Examples

See the examples directory.

How To Release New Versions

  • perform the regular Maven release:
    $ ./mvnw release:prepare release:perform
    
  • push the tags:
    $ git push --tags
    
  • sync to Central;
  • build and push the Docker images:
    $ git checkout RELEASE_TAG
    $ ./mvnw -f docker-images clean package -Pdocker
    $ ./docker-images/push.sh RELEASE_TAG