Add a non-production pipeline configuring-non-production-pipelines

After setting up a program and creating at least one environment in the Cloud Manager UI, you can add non-production pipelines. These pipelines let you test code quality before deploying to production environments.

A user must have the Deployment Manager role to configure non-production pipelines.

NOTE
You can edit pipeline settings after the initial setup.

Add a new non-production pipeline adding-non-production-pipeline

After you set up a program and create at least one environment in the Cloud Manager UI, you can add non-production pipelines. Use these pipelines to test code quality before you deploy to production environments.

To add a new non-productoin pipeline:

  1. Sign into Cloud Manager at experience.adobe.com.

  2. In the Quick access section, click Experience Manager.

  3. In the left side panel, click Cloud Manager.

  4. Select an organization that you want.

  5. On the My Programs console, click a program.

  6. In the left side panel, click Pipelines.

  7. On the Pipelines page, near the upper-right corner, click Add Pipeline > Add Non-Production Pipeline.

    Add non-production pipeline

  8. On the Configuration tab of the Add Non-Production Pipeline dialog box, select one of the following non-production pipelines you want to create:

    • Code Quality Pipeline - Creates a pipeline that builds the code on a GIT branch, runs unit tests, and evaluates code quality without deploying to an environment.
    • Deployment Pipeline - Creates a pipeline that builds the code, runs unit tests, evaluates code quality, and deploys to a non-production environment.

    Add Non-Production pipeline dialog

  9. Under the Pipeline Configuration section, in the Non-Production Pipeline Name field, type a description for your non-production pipeline.

  10. Under the Deployment Options section, select one of the following deployment triggers that you want to use:

    • Manual - Lets you manually start the pipeline.
    • On Git Changes - Starts the pipeline when commits are added to the configured Git branch. With this option, you can still start the pipeline manually, as required.
  11. Select the Important Metric Failures Behavior that you want to use.

    • Ask every time - This behavior is the default setting and requires manual intervention on any important failure.
    • Fail Immediately - If selected, the pipeline is canceled whenever an important failure occurs. It essentially emulates a user manually rejecting each failure.
    • Continue Immediately - If selected, the pipeline procedes automatically whenever an important failure occurs. It essentially emulates a user manually approving each failure.
  12. Click Continue.

  13. The remaining steps that you use to complete the configuration of your non-production pipeline depend on the type of source code you choose to use.
    On the Source Code tab of the Add Non-Production Pipeline dialog box, select which type of code the non-production pipeline should process.

    See CI/CD Pipelines for more information about the types of pipelines.

I am using Full Stack Code full-stack-code

A full-stack code pipeline simultaneously deploys back-end and front-end code builds containing one or more AEM server applications along with HTTPD/Dispatcher configuration.

NOTE
If a full-stack code pipeline exists for the selected environment, this selection is disabled.

To finish the configuration of the full-stack code non-production pipeline, do the following:

  1. In the Source Code section, define the following options.

    • Eligible Deployment Environments - Available only when you edit a non-production pipeline. If your pipeline is a deployment pipeline, you must select to which environments it should deploy.

    • Repository - From the drop-down list, choose the Git repository that the pipeline uses as its source. Cloud Manager builds code from the repository that you choose here.

      note tip
      TIP
      See Adding and Managing Repositories so you can learn how to add and manage repositories in Cloud Manager.
    • Git Branch - From the drop-down list, choose which branch in the selected repository the pipeline should build from. The default is main. The pipeline uses the chosen branch as the source for build and deployment. If necessary, click Refresh to update the list of available branches for the selected repository. Use this option if a recently created branch does not appear in the list.

    • Build Strategy

      • Full Build - Builds all modules in the repository every time

      • BETA Smart Build - Builds only modules that have changed since the last commit.
        Learn more about using Smart Build in a non-production pipeline.

        note important
        IMPORTANT
        Smart Build is available only for Code Quality pipelines and Dev Full Stack Code deployment pipelines.
    • Ignore Web Tier Configuration check box - When checked, the pipeline does not deploy your web tier configuration.

  2. In the Pipeline section, if your pipeline is a deployment pipeline, you can choose to run a testing phase. Check the options that you want to enable in this phase. If none of the options are selected, the testing phase is not displayed during the pipeline’s run.

    Full-stack pipeline

  3. Click Save.

The pipeline is saved and you can now [manage your pipelines](managing-pipe
lines.md) on the Pipelines card on the Program Overview page.

I am using Targeted deployment targeted-deployment

A targeted deployment deploys code only for selected parts of your AEM application. In such a deployment you can choose to Include one of the following types of code:

Targeted deployment options

  • Front End Code - Configure JavaScript and CSS for the front end of your AEM application.

    • With front-end pipelines, more independence is given to front-end developers and the development process can be accelerated.
    • See the document Developing Sites with the Front-End Pipeline for how this process works along with some considerations to be aware of to get the full potential out of this process.
  • Web Tier Config - Configure Dispatcher properties to store, process, and delivery web pages to the client.

    • See the document CI/CD Pipelines for more details.

    • If a web-tier code pipeline exists for the selected environment, this selection is disabled.

    • If a full-stack pipeline already deploys to an environment, you can still create a web-tier configuration pipeline for that same environment. When you do, Cloud Manager ignores the web-tier configuration in the full-stack pipeline.

      note note
      NOTE
      Web tier and config pipelines are not supported with private repositories. See Adding Private Repositories in Cloud Manager for details and the full list of limitations.
  1. Under the Source Code section, define the following options:

    • Repository - This option defines from which GIT repository that the non-production pipeline should retrieve the code.

      note tip
      TIP
      See Adding and Managing Repositories so you can learn how to add and manage repositories in Cloud Manager.
    • Git Branch - This option defines from which branch in the selected pipeline should retrieve the code. Enter the first few characters of the branch name and the auto-complete feature of this field. It finds the matching branches that you can select.

    • Code Location - This option defines the path in the branch of the selected repo from which the pipeline should retrieve the code.

  2. If you enabled Experience Audit, click Continue to advance to the Experience Audit tab where you can define the paths that should always be included in the Experience Audit.

    • If you enabled Experience Audit, see the document Experience Audit for details on how to configure.
    • If you did not, skip this step.
  3. Click Save to save the pipeline.

The pipeline is saved and you can now manage your pipelines on the Pipelines card on the Program Overview page.

About using Smart Build in a non-production pipeline about-smart-build-non-production-pipeline

Smart Build in Cloud Manager is an optimized build strategy for non-production pipelines. Smart Build reduces build times by caching modules and rebuilding only those modules that have changed since the last successful run. Unchanged modules are reused from cache, while only modified modules and their dependencies are rebuilt, improving efficiency for iterative development workflows.

Smart Build is currently available only for the following:

  • Code Quality pipelines.
  • Dev full-stack deployment pipelines.
NOTE
The first run after enabling Smart Build behaves like a Full Build because the cache is empty.

Smart Build is recommended when you have the following:

  • You are actively developing and committing frequent incremental changes.
  • Your project contains multiple Maven modules.
  • Full builds are taking significant time.

Smart Build is not always ideal when you have the following:

  • Your build relies heavily on plugins that perform operations outside Maven’s dependency graph.
  • You require full rebuild validation on every execution.

Understand build performance smart-build-performance

The performance gain from using Smart Build depends on several factors including the following:

  • The number of modules in the project.
  • The frequency and scope of code changes.
  • The distribution of dependencies across modules.

Generally, projects with many independent modules can see the greatest improvement.

Per-module cache opt-out smart-build-cache-optout

Smart Build provides fine-grained control that lets you disable caching for specific modules. This ability is useful when certain modules:

  • Use plug-ins, such as exec-maven-plugin or maven-antrun-plugin.
  • Perform file operations not tracked by Maven dependencies.
  • Cached content produces inconsistent results.

Disable caching for a module smart-build-disable-caching

You can add the following property to the affected module’s pom.xml:

<properties>
  <maven.build.cache.enabled>false</maven.build.cache.enabled>
</properties>

This syntax forces the module to rebuild on every pipeline execution while other modules continue to benefit from caching.

Limitations and considerations when using Smart Build smart-build-limitations

Keep the following in mind when you use Smart Build:

  • Smart Build relies on Maven dependency analysis.
  • Changes outside the dependency graph may not trigger rebuilds.
  • Some plug-ins may not be fully compatible with caching.
  • You can switch back to Full Build at any time by editing the non-production pipeline.

If you encounter unexpected build behavior, consider disabling caching for specific modules or temporarily switching your build strategy to Full Build.

Troubleshooting Smart Build issues smart-build-troubleshoot

Issue
Suggested solutions
Build results are inconsistent
• Disable caching for affected modules.
• Verify plug-in behavior (especially exec/antrun plug-ins).
No performance improvement
• Ensure that multiple runs have occurred (cache warm-up).
• Check if most modules are changing frequently.
Unexpected artifacts or missing changes
• Review whether changes are outside Maven dependency tracking.
• Use Full Build for verification.

See Add a non-production pipeline to enable Smart Build.

Exclude Dispatcher packages exclude-dispatcher-packages

If you want Dispatcher packages built in your pipeline but not uploaded to build storage, disable publishing. Doing so can shorten the pipeline’s run time.

Add the following configuration to your project pom.xml file to disable publishing Dispatcher packages. Set an environment variable in the Cloud Manager build container to flag when to ignore Dispatcher packages. The pipeline reads this flag and ignores them accordingly.

<profile>
  <id>only-include-dispatcher-when-it-isnt-ignored</id>
  <activation>
    <property>
      <name>env.IGNORE_DISPATCHER_PACKAGES</name>
      <value>[!NOTE]rue</value>
    </property>
  </activation>
  <modules>
    <module>dispatcher</module>
  </modules>
</profile>
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab