View CRX Content Package Deployer on the plugin site for more information.
Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:
CRX Content Package Deployer Plugin
Deploys content packages to Adobe CRX applications, like Adobe CQ 5.4, CQ 5.5, and AEM 5.6. Also allows downloading packages from one CRX server and uploading them to one or more other CRX servers.
- Supports password-less HTTP Signature authentication using your configured SSH Private Keys, eliminating the need to
coordinate password exchange between developers, devops, and operations teams.
- Downloads and/or deploys 1-to-many CRX packages per execution, and deploys each CRX package to 1-to-many servers per
- The multiselect-enabled Package Choice Parameter allows for execution of parameterized builds using a selection
widget populated with a list of packages retrieved from a CRX server.
- Build and download a content package from an AEM instance (for automating production content refresh to lower environments)
- Validate CRX packages prior to an archive or deployment step (check the package workspace filter against a validation workspace filter, and scan the contents of the zip file for forbidden file extensions, like embedded bundles or packages, or even JSP files, if you feel very strongly that your developers should be using EcmaScript exclusively).
- Replicate a content package from CRX (for example, if direct upload to publish servers isn't possible from your Jenkins server)
- Specify workspace filters in the Build and Validate steps using a compact text format that doesn't require escaping regular expressions.
CRX login credentials are managed using functionality provided by the Credentials Plugin. Users are encouraged to provide a description for each set of credentials and to organize their credentials using Domains, which are regularly filtered by this plugin's components according to Base URL parameters. These practices reduce confusion while increasing reusability and security.
HTTP Signature Support
In addition to username/password login, this plugin also supports HTTP Signature client authentication using SSH User Private Key credentials, which in turn is provided by SSH Credentials Plugin. The server side of this functionality can be setup in Adobe Granite/CRX servers by installing the Sling HTTP Signature Authentication Handler.
Compact Workspace Filters
Specify a package workspace filter in a simple text format that will be applied to the package before build. This defines what content will be captured by the package.
Simple spec is defined simply as a line-by-line format where:
- each line consists of significant text before an optional comment character (#)
- each line that begins with a "/" begins a new filter root.
- the first non-empty, non-comment line must define a new filter root
- each non-empty, non-comment line after a filter root that begins with a
-defines an include or exclude rule, respectively.
- everything following the
-must be a valid regular expression
Content is "covered" by a filter root if the content path starts with, or is the same as the filter root path. Once the "covering" filter root is identified, its include/exclude rules are evaluated from top to bottom, by matching the content path against each rule pattern (which is a Java regular expression). The last rule whose pattern matches the content path defines whether that content is included (line starts with
+) or excluded (line starts with
-). If no rules are defined, all content covered by that root path is included
For example, to include everything under /etc except for packages:
To create a package for a project "acme" defined in CRX DE Lite, a filter may look like this:
- #Deploy Content Packages to CRX
- #CRX Content Package Choice Parameter
- #Download Content Packages from CRX
- #Replicate Content Packages from CRX
- #Build a Content Package on CRX
- #Validate CRX Content Packages
Deploy Content Packages to CRX
The "Deploy Content Packages to CRX" build step can be added to any job type to upload and install CRX content packages from the workspace, or a local directory, if specified. The logic is designed to be flexible in regards to how the package files are created and organized within the directory, because it will recursively scan and identify any files which have a ".jar" or ".zip" extension. Feel free to use this step immediately after a maven build, or after the "Download Content Packages from CRX" step, or after resolving maven artifacts from a repository manager into the workspace. Once a package has been identified (i.e. has a valid group:name:version), the package will be checked against the Package ID filter to determine whether it must be uploaded to the configured Base URL(s).
If a package installation succeeds with errors "(check logs!)", the build will be marked as unstable.
CRX Content Package Choice Parameter
The CRX Content Package Choice Parameter is a build parameter which allows a user to select any number of content
packages available for download from a CRX server as as a valid, newline-separated Package Id field value, which can
then be used in other components provided by this plugin.
Build with Parameters
Download Content Packages from CRX
The "Download Content Packages from CRX" build step can be used on any job type to download content packages to the workspace. Use the CRX Content Package Choice Parameter to select one or more packages from a live CRX Package Manager service. Downloaded packages are organized according to their CRX installation path, relative to the workspace path, or local directory, if specified.
Replicate Content Packages from CRX
The "Replicate Content Packages from CRX" build step can be used on any job type to asynchronously replicate content packages from one or more Granite servers to their configured replication targets, such as AEM publish servers. Use the CRX Content Package Choice Parameter to select one or more packages from a live CRX Package Manager service. This is probably not the most deterministic way to install packages on publish servers, so prefer using the "Deploy Content Packages to CRX" step whenever possible.
Build a Content Package on CRX
Create and build a content package on CRX by specifying a workspace filter, and then download it to the workspace to get archived as a backup, or as the beginning of a magical content package adventure, full of drama, suspense, and deployments to lower environments!
Validate CRX Content Packages
Validate that content packages in the workspace conform to restrictions on the scope of their WorkspaceFilter and on the types of embedded files. Use this to enforce security policies to prevent developers from deploying content or code through continuous integration. Only package files with .zip or .jar extensions will be identified and deployed.
Version 1.2 (Mar 20, 2014)
- Added "Build a Content Package on CRX" build step
- Added "Validate CRX Content Packages" build step
- Added support for globbing patterns in the Deploy and Validate steps' Package ID field, as an alternative to Package ID filters.
- Added a Wait Delay field for the Deploy step to help address bundle installation race conditions.
Version 1.1 (Mar 13, 2014)
- Added "Replicate on Install" option to "Deploy Content Packages to CRX" build step
- Added "Replicate Content Packages from CRX" build step
- Added validation-specific timeout options to the "CRX Content Package Deployer - HTTP Client" global options
- Fixed a bug in the granite-client-packman library where reserved and illegal characters in Package Ids were not being escaped when constructing URLs.
Version 1.0 (Jan 5, 2014)
- Initial release