Skip to main content
Version: 3.4.x

Self Managed Commerce CI Pipelines

CloudOps for Kubernetes includes two Jenkins pipelines that run through a complete Self Managed Commerce deployment workflow.

Commerce Pipeline commerce-test-and-deploy

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.

On-demand Commerce Pipeline commerce-branch-validation

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.