Skip to content
walmartlabsPublic

About

Concord - workflow orchestration and continuous deployment management

Topics

Resources

Security policy

Stars

234 stars

Watchers

19 watching

Forks

Latest commit

 

History

5,432 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 https://github.com/walmartlabs/concord.git
cd concord
./mvnw clean install -DskipTests

Available Maven profiles:

  • docker - build Docker images;
  • it - run integration tests;
  • jdk25-aarch64 - build Docker images for aarch64.

Profiles can be combined, e.g.

./mvnw clean install -Pdocker -Pit -Pjdk25-aarch64

Console

See the console2/README.md file.

cd ./console2
npm ci # Install dependencies

Start the console in dev mode by running:

npm run start

Integration tests

Prerequisites

Prerequisites:

  • Git 2.18+
  • Docker, listening on tcp://127.0.0.1:2375;
  • Ansible 2.6.0+ must be installed and available in $PATH. See the official documentation;
  • requests python module is required. It can be installed by using pip install requests or the 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

To run UI ITs in an IDE using the UI's dev mode:

  • start the UI's dev mode with cd console2 && npm start;
  • set up IT_CONSOLE_BASE_URL=http://localhost:3000 environment variable before running any UI tests.

Repository Docs

For repo-specific development entrypoints, see:

Examples

See the examples directory.

How To Release New Versions

  • perform a regular Maven release:
    $ ./mvnw release:prepare release:perform
    
  • update and commit the CHANGELOG.md file
    $ git add CHANGELOG.md
    $ git commit -m 'update changelog'
    
  • push the new tag and the master branch:
    $ git push origin RELEASE_TAG
    $ git push origin master
    
  • build and push the Docker images:
    $ git checkout RELEASE_TAG
    $ gh workflow run docker-multiarch.yml --ref master -f ref=RELEASE_TAG -f docker_tag=RELEASE_TAG -f docker_namespace=walmartlabs
    
  • sync to Sonatype;
  • check the Central repository if the sync is complete:
    https://repo.maven.apache.org/maven2/com/walmartlabs/concord/parent/RELEASE_TAG
    
  • once the sync is complete, push the latest Docker images:
    $ gh workflow run docker-multiarch.yml --ref master -f ref=RELEASE_TAG -f docker_tag=latest -f docker_namespace=walmartlabs
    

Development Notes

See NOTES.md.

About

Concord - workflow orchestration and continuous deployment management

Topics

Resources

Security policy

Stars

234 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages