Blogs

Automating Releases for Nuxeo Cloud Customer Console – Part 3

Written by Diego Brito | Feb 28, 2024

This is the final blog in a 3-part series focusing on working with Nuxeo Cloud Customer Console in sandbox environments. In this part, we explore how to supplement Nuxeo Cloud Customer Console pipelines with automated release processes to enhance efficiency in package deployment and version management.

Before diving in, check out Part 1 – Navigating Change: Your Guide to Nuxeo Cloud Customer Console Migration and Part 2 –  Advanced Tips for Nuxeo Cloud Customer Console Migration.

 

Introduction

With the switch to the Nuxeo Cloud Customer Console, sandbox environments are no longer shipped with a dedicated release pipeline. As described in Part 1 of this series, Nuxeo Cloud Customer Console provides a pipeline for building Nuxeo packages and publishing them to Marketplace.

While this pipeline can be used to generate release builds, there are often additional activities that can be automated as part of the release process. You might ask – "How can we supplement the Nuxeo Cloud Customer Console pipelines with our own automated release process?" Read on!

 

Release Process Objective

We want to fully leverage the Nuxeo Cloud Customer Console and its image build and deployment capabilities. Automated release processes should build and publish a package to Marketplace so it is available to the Nuxeo Cloud Customer Console image build pipeline. 

 

Automation Suggestions

Below are some suggested aspects of the release process that can be automated, in addition to building the package and deploying it to Marketplace via the API. 

 

Version Control

Scripting the version control operations for a release process is a nice quality-of-life feature. Creating a release branch and tagging the repository are examples of operations that can be automated. Having well-defined repository branching and code release strategies makes this step a breeze. 

 

Project Version

Updating the project version in all the correct locations is tedious when done manually. A utility that updates the project version, where required, is another great feature for a release pipeline. 

 

Maven Deploy

Packages can be deployed to Maven repositories using the Apache Maven Deploy Plugin.

 

Nuxeo-Provided Utilities

The Nuxeo platform is shipped with some Python utilities that are very useful. Before writing your own utilities, I highly recommend exploring ‘release.py’ to see if it satisfies your needs for creating version control and project version automation. It has a variety of options to control what branches are created, how the project version is incremented, and more. 

Nuxeo OpenShift sandbox environments came with a release pipeline that runs on Jenkins. Note that this section of the release 'jenkinsfile' simply downloads a subset of the Python utilities and executes ‘release.py’ to prepare and perform the release. This approach is highly portable since the only added dependency to the build process is Python.

 

In Conclusion

While the absence of a dedicated release pipeline isn’t the end of the world, it was a nice feature of the OpenShift sandbox environments. Hopefully, this discussion of release automation and available utilities provides enough information to create a release pipeline of your own on a CI/CD tool of your choosing.

The Genus team is always here to help assist or answer any questions about the Nuxeo Cloud Customer Console, Nuxeo platform, or your current or future implementation or enhancement needs. Contact us today!

 

About the Author
Diego Brito is a Software Engineer and Consultant at Genus Technologies. Diego is passionate about developing enterprise software in the Content Services space.
Throughout his career, Diego has developed a deep understanding of the Nuxeo Platform and works on the Genus team identifying market needs, content services, and solutions for Nuxeo customers, as well as contributing add-ons to the Nuxeo Marketplace. Connect with Diego on LinkedIn! 

 

Get more useful content, expert tech tips, and timely articles delivered to your inbox ~ Subscribe to Genus Blogs!