This CLI toolkit provides functionalities to create and monitor builds and deployments within the SAP Commerce Cloud.
To set up your SAP CC CLI Toolkit please provide your:
- SAP Commerce Cloud Subscription Code*
- SAP Commerce Cloud API token/key*
- Define a maximum waiting time in minutes for builds (default: 30min)
- Define a maximum waiting time in minutes for deployments (default: 30min)
- Define polling/interval rate in seconds for builds (default: 5sec)
- Define polling/interval rate in seconds for deployments (default: 5sec)
- Enable notification service for MS Teams webhook (default: false)
- Define MS Teams webhook URL (default: empty)
*mandatory
using the file: <workdir>/config/application.properties
toolkit.subscriptionCode = <insert your SAP CC subscription code here>
toolkit.apiKey = <insert your SAP CC API key here>
toolkit.build.maxWaitTime = <insert your maximum waiting time in minutes for builds here>
toolkit.build.sleepTime = <insert your polling/interval rate for build progress here>
toolkit.deploy.maxWaitTime = <insert your maximum waiting time in minutes for deployments here>
toolkit.deploy.sleepTime= <insert your polling/interval rate in seconds for build progress here>
toolkit.apiConnectTimeout = <insert your maximum connect timeout for all API connections>
toolkit.apiReadTimeout = <insert your maximum read timeout for all API connections>
notification.teams.enabled = true/false
notification.teams.webhook.url = <insert your teams webhook url>
Please use the default Spring boot gradle tasks to build this application:
./gradlew bootJar
You can list all current flags and parameters by running the jar with the --help flag:
java -jar build/libs/sapcc-toolkit-*.jar --help
[...]
usage: sapcc-toolkit
-a,--applicationcode <arg> application code
-b,--build Execute build
-c,--buildcode <arg> Code of build to deploy
-d,--deploy Execute deployment
-e,--environment <arg> environment for deployment
-h,--help print usage help
-n,--name <arg> build name
-p,--pidfile <arg> process id file
-r,--branch <arg> branch to be build
-s,--strategy <arg> deployment strategy
-u,--updatemode <arg> database update mode for deployment
-y,--async Don't monitor progress
-t,--skipBuildTimeouts Skip build timeouts during build progress monitoring
java -jar build/libs/sapcc-toolkit-*.jar --build
java -jar build/libs/sapcc-toolkit-*.jar --build --async
java -jar build/libs/sapcc-toolkit-*.jar --build --branch release/1.6.0 --name release-1.6.0
java -jar build/libs/sapcc-toolkit-*.jar --build --deploy
Create a new develop (default) build and deploy this newly build on d1 without URS and skip build timeouts
java -jar build/libs/sapcc-toolkit-*.jar --build --deploy --skipBuildTimeouts
java -jar build/libs/sapcc-toolkit-*.jar --deploy --buildcode 20211122.1
java -jar build/libs/sapcc-toolkit-*.jar --deploy --buildcode 20211122.1 --updatemode UPDATE --environment s1
A docker image is being build for each build on the main branch. Use it like this:
docker run -it --rm -v $PWD/config:/config lennartjuetteunic/sapcc-toolkit --build <OPTIONS>
For publishing artifacts we use the maven-publish plugin. Since the Unic nexus repository is defined unter the name 'unicEcom' you need to set the variables unicEcomUsername
and unicEcomPassword
. This can be done in your ~/.gradle/gradle.properties
for example.
./gradlew publish