Self Managed Commerce CI Pipelines
CloudOps for Kubernetes includes two Jenkins pipelines that run through a complete Self Managed Commerce deployment workflow.
commerce-test-and-deploy
Commerce Pipeline This job is used to test Self Managed Commerce code and stand up a Self Managed Commerce environment (stack) with that tested code. When the job completes, the Commerce environment remains deployed and running so that testers and users can continue to access and use it. The resulting Commerce environment is suitable for testing, but does not have the high-availability features required for production-like use cases.
The commerce-test-and-deploy
job is often scheduled to run automatically each night, to validate code that has been merged into the master branch during the day, and to ensure the Commerce test environment is updated with that code and ready to be used by Commerce testers the following day.
This job builds the main Self Managed Commerce branch, which by default is assumed to be master
, and optionally runs all local unit tests. If the build and tests are successful, the job creates or updates a Self Managed Commerce stack and then runs Cortex system tests against that stack. The job is parallelized and runs as many tests as possible before failing if any tests fail.
By default, the job is enabled but not configured to run on a schedule. To automatically run the job, use the Jenkins server UI to configure a schedule suitable for your team.
note
For users familiar with CloudOps for AWS, this job is similar to and serves the same purpose as the CommerceScheduledPipeline
job that is available in recent releases of that product. The schedule can be disabled if you run the job solely on-demand.
Jenkins job parameters
containerUser
Indicates whether the container images will be built to run as the root user or the non-root user. It cannot be empty.
Set to non-root
if the container images will be built to run as non-root (for example, they will be built with release 4.2.x or newer of the Elastic Path Docker repository).
Set to root
if the container images will be built to run as root (for example, they will be built with release 4.1.x or earlier of the Elastic Path Docker repository).
updateMode
Controls how an existing Self Managed Commerce stack is used.
Set to updateInPlace
to update an existing Self Managed Commerce stack. This is the default value for this parameter.
Set to deleteAndRecreate
to delete an existing Self Managed Commerce stack. Following deletion a new Self Managed Commerce stack will be created.
runTests
Indicates whether unit and Cortex system tests should be run. Defaults to true
.
kubernetesNickname
Specifies the nickname of the Self Managed Commerce environment to be used for deployment and testing stages. The default value for this parameter is nightly
.
cloudOpsForKubernetesRepoURL
The CloudOps for Kubernetes Git repository to use when cloning the Jenkinsfile. The Jenkinsfile defines how the CI pipeline is run.
cloudOpsForKubernetesBranch
The branch of the CloudOps for Kubernetes cloud-ops-kubernetes
Git repository to use when cloning the Jenkinsfile that defines how the CI pipeline is run.
dockerBranch
The branch of the Elastic Path containerization docker
Git repository to use when building container images.
epCommerceBranch
The branch of the Self Managed Commerce ep-commerce
Git repository to use when building and testing Commerce related artifacts.
epCommerceCredentialId
The Jenkins credentials to use when checking out the Self Managed Commerce code.
epCommerceRepoURL
The Commerce Git repository to use when building Commerce related artifacts.
commerce-branch-validation
On-demand Commerce Pipeline This job is used to test Self Managed Commerce code. It will stand up a Commerce environment during the tests and cleans-up after itself, deleting that environment after the tests have been run. After the job completes, the Commerce environment is no longer available.
This job is typically run by Commerce developers to validate their Self Managed Commerce feature and development branches, often before merging their code. This job is intended to thoroughly test a Self Managed Commerce branch and performs the following tasks:
- Builds the specified Self Managed Commerce branch.
- Runs all local unit tests.
- Deploys a temporary Self Managed Commerce stack.
- Runs Cortex system tests against the stack.
The job is highly parallelized and will run as many tests as possible before failing if any tests fail.
note
For users familiar with CloudOps for AWS, this job is similar to and serves the same purpose as the CommercePipeline
job that is available in recent releases of that product.
Jenkins job parameters
containerUser
Indicates whether the container images will be built to run as the root user or the non-root user. It cannot be empty.
Set to non-root
if the container images will be built to run as non-root (for example, they will be built with release 4.2.x or newer of the Elastic Path Docker repository).
Set to root
if the container images will be built to run as root (for example, they will be built with release 4.1.x or earlier of the Elastic Path Docker repository).
cloudOpsForKubernetesRepoURL
The CloudOps for Kubernetes Git repository to use when cloning the Jenkinsfile. The Jenkinsfile defines how the CI pipeline is run.
cloudOpsForKubernetesBranch
The branch of the CloudOps for Kubernetes cloud-ops-kubernetes
Git repository to use when cloning the Jenkinsfile that defines how the CI pipeline is run.
dockerBranch
The branch of the Elastic Path containerization docker
Git repository to use when building container images.
epCommerceBranch
The branch of the Self Managed Commerce ep-commerce
Git repository to use when building and testing Commerce related artifacts.
epCommerceCredentialId
The Jenkins credentials to use when checking out the Self Managed Commerce code.