Concord is a workflow server. It is the orchestration engine that connects different systems together using scenarios and plugins created by users.
Dependencies:
- Git 2.18+
- Java 17
- Docker Community Edition
- Docker Buildx
- (Optional) NodeJS and NPM (Node 20 or greater)
git clone https://github.com/walmartlabs/concord.git
cd concord
./mvnw clean install -DskipTestsAvailable Maven profiles:
docker- build Docker images;it- run integration tests;jdk17-aarch64- use a different JDK version for building artifacts and Docker images.
Profiles can be combined, e.g.
./mvnw clean install -Pdocker -Pit -Pjdk17-aarch64
See the console2/README.md file.
cd ./console2
npm ci # Install dependenciesStart the console in dev mode by running:
npm run startPrerequisites:
- 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; requestspython module is required. It can be installed by usingpip install requestsor the system package manager;- Java must be available in
$PATHasjava; - Chrome WebDriver available in
$PATH.
Integration tests are disabled by default. Use the it profile to enable them:
./mvnw verify -PitThis 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 -PdockerTo 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:3000environment variable before running any UI tests.
See the examples directory.
- 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 $ ./mvnw -f docker-images clean package -Pdocker $ ./docker-images/push.sh RELEASE_TAG - 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
latestDocker images:$ ./docker-images/push.sh latest
See NOTES.md.