In this section we will go through the assumptions we’ve made in the project structure and project properties.
We’ve taken the following opinionated decisions for a Cloud Foundry based project:
For Maven (example project):
settings.xml is parametrized to pass the credentials to push code to Artifactory
M2_SETTINGS_REPO_ID - server id for Artifactory / Nexus deploymentM2_SETTINGS_REPO_USERNAME - username for Artifactory / Nexus deploymentM2_SETTINGS_REPO_PASSWORD - password for Artifactory / Nexus deployment./mvnw clean deploystubrunner.ids property to retrieve list of collaborators for which stubs should be downloadedrepo.with.binaries property - (Injected by the pipeline) will contain the URL to the repo containing binaries (e.g. Artifactory)distribution.management.release.id property - (Injected by the pipeline) ID of the distribution management. Corresponds to server id in settings.xmldistribution.management.release.url property - (Injected by the pipeline) Will contain the URL to the repo containing binaries (e.g. Artifactory)apicompatibility Maven profilelatest.production.version property - (Injected by the pipeline) will contain the latest production version for the repo (retrieved from Git tags)smoke Maven profilee2e Maven profileFor Gradle (example project check the gradle/pipeline.gradle file):
deploy task for artifacts deploymentREPO_WITH_BINARIES env var - (Injected by the pipeline) will contain the URL to the repo containing binaries (e.g. Artifactory)M2_SETTINGS_REPO_USERNAME env var - Username used to send the binary to the repo containing binaries (e.g. Artifactory)M2_SETTINGS_REPO_PASSWORD env var - Password used to send the binary to the repo containing binaries (e.g. Artifactory)apiCompatibility tasklatestProductionVersion property - (Injected by the pipeline) will contain the latest production version for the repo (retrieved from Git tags)smoke taske2e taskgroupId task to retrieve group idartifactId task to retrieve artifact idcurrentVersion task to retrieve the current versionstubIds task to retrieve list of collaborators for which stubs should be downloadedWe’ve taken the following opinionated decisions for a Cloud Foundry based project:
SYSTEM_PROPS env variableFor Maven (example project):
settings.xml is parametrized to pass the credentials to push code to Artifactory and Docker repository
M2_SETTINGS_REPO_ID - server id for Artifactory / Nexus deploymentM2_SETTINGS_REPO_USERNAME - username for Artifactory / Nexus deploymentM2_SETTINGS_REPO_PASSWORD - password for Artifactory / Nexus deploymentDOCKER_SERVER_ID - server id for Docker image pushingDOCKER_USERNAME - username for Docker image pushingDOCKER_PASSWORD - password for Docker image pushingDOCKER_EMAIL - email for Artifactory / Nexus deploymentDOCKER_REGISTRY_URL env var - (Overridable - defaults to DockerHub) URL of the Docker registryDOCKER_REGISTRY_ORGANIZATION - env var containing the organization where your Docker repo lays./mvnw clean deploystubrunner.ids property to retrieve list of collaborators for which stubs should be downloadedrepo.with.binaries property - (Injected by the pipeline) will contain the URL to the repo containing binaries (e.g. Artifactory)distribution.management.release.id property - (Injected by the pipeline) ID of the distribution management. Corresponds to server id in settings.xmldistribution.management.release.url property - (Injected by the pipeline) Will contain the URL to the repo containing binaries (e.g. Artifactory)deployment.yml contains the Kubernetes deployment descriptorservice.yml contains the Kubernetes service descriptorapicompatibility Maven profilelatest.production.version property - (Injected by the pipeline) will contain the latest production version for the repo (retrieved from Git tags)smoke Maven profilee2e Maven profileFor Gradle (example project check the gradle/pipeline.gradle file):
deploy task for artifacts deploymentREPO_WITH_BINARIES env var - (Injected by the pipeline) will contain the URL to the repo containing binaries (e.g. Artifactory)M2_SETTINGS_REPO_USERNAME env var - Username used to send the binary to the repo containing binaries (e.g. Artifactory)M2_SETTINGS_REPO_PASSWORD env var - Password used to send the binary to the repo containing binaries (e.g. Artifactory)DOCKER_REGISTRY_URL env var - (Overridable - defaults to DockerHub) URL of the Docker registryDOCKER_USERNAME env var - Username used to send the the Docker imageDOCKER_PASSWORD env var - Password used to send the the Docker imageDOCKER_EMAIL env var - Email used to send the the Docker imageDOCKER_REGISTRY_ORGANIZATION - env var containing the organization where your Docker repo laysdeployment.yml contains the Kubernetes deployment descriptorservice.yml contains the Kubernetes service descriptorapiCompatibility tasklatestProductionVersion property - (Injected by the pipeline) will contain the latest production version for the repo (retrieved from Git tags)smoke taske2e taskgroupId task to retrieve group idartifactId task to retrieve artifact idcurrentVersion task to retrieve the current versionstubIds task to retrieve list of collaborators for which stubs should be downloaded