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 -DskipTests
Available 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 dependencies
Start the console in dev mode by running:
npm run start
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; requests
python module is required. It can be installed by usingpip install requests
or the system package manager;- Java must be available in
$PATH
asjava
; - Chrome WebDriver available in
$PATH
.
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.
See the examples directory.
- perform a regular Maven release:
$ ./mvnw release:prepare release:perform
- push the new tag:
$ git push origin RELEASE_TAG
- 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
See NOTES.md.