This document covers utilizing a technically advanced feature in order to integrate Centercode’s Release Management with your build/release automation tools. If you’re unsure about leveraging this integration for your Customer Validation purposes, we recommend that you contact Centercode’s Support Team via in-site chat or email - firstname.lastname@example.org, seek out a technical contact within your organization, and/or leverage a Service Credit.
Why should I integrate with Centercode?
Ensuring that your software or firmware builds are released in a timely manner is crucial for customer testing - when your development teams are churning out updated builds at a blistering, agile pace, it can be hard to keep up if you’re doing much of the work manually. Using this integration, you’ll be able to incorporate your Centercode testing processes into your product development and deployment cycles so you never miss a beat. Centercode’s Release API Integration offers can provide you with:
Agile Software Release Process
Keep up with your organization’s agile development and remove the manual processes between build and pre-release testing. Bake customer testing directly into your CICD (Continuous Integration; Continuous Delivery) cycles via automated integration with Centercode.
Standardized and Consistent Settings
Determine the default settings for any release coming through your integration to ensure minimal necessary adjustments to anything from access settings to release availability..
Flexible JSON Implementation
Settings configured within the integration cover tons of options including the title, release value, formatted (HTML) text body, where your release is “attached” from, and how your testers can interact with the newest deployments.
What Do I Need to Set It Up?
- A code deployment tool capable of sending POST requests
- Enhanced Integrations enabled and an available Community-level API Key (more info here)
- Project Manager access
- A connected Centercode FTP (for direct attachment)
An externally accessible repository for your Release files
Configuring Centercode’s Release API Integration
Ideally set up within a Project Template, The Release API functionality leverages Release Types found within your Centercode Projects. First, you’ll configure the Centercode side to accept targeted POST requests and the default settings for any Release created within your Release Type. Then you’ll set up the sending side of the integration - whichever release automation tool your organization uses.
I. Prepare Up Your Release Type
Create the Release Type or select an existing one to use for your automation. This Release Type will house all the code releases you deploy within this project.
- Access your Project Tools > Releases
- Click the desired Release Type to modify it
Click the Create a Release Type button to
- Under the Release Automation heading, select an API Key (more info)
- Note or update the Release Type Key that will be used in your Endpoint URL
- Note the API Endpoint URL for later use (this is where your system will send its POST)
Also included on this page are three key configuration options relevant to the new Releases created within this Release Type:
- Single Active Release - automatically Archive all other Releases within this Type
- Single Notice - ensure only the most recent release is set as a Notice for this Release Type
- Default Team Access - set default access for any new Release within this Type
II. Review the JSON Example
With an API Key selected, the JSON Body structure example can be seen. Use this example to formulate your own JSON payload to be sent to Centercode’s API Endpoint URL. Below is a breakdown of each of the key components, their intent, and how to use them.
title - The name of your Release such as ‘Centercode C16-6 Delta Release' (Format: text)
subtitle - A short subtitle or one-liner such as ‘ Release API and Report Archive’ (Format: text)
releaseValue - The unique identifier or release number for this deployment (Format: text)
body - The messaging and text body for the release such as patch notes, release details, etc. (Format: JSON encoded, HTML)
startDate - When this release will become available. (Format: [YYYY-MM-DD][00:00:00AM])
endDate - When this release will become unavailable. (Format: [YYYY-MM-DD][00:00:00AM])
isClickThroughNotice - Automatically set the Release as Notice (Format: ‘true’ or ‘false’)
For Files Attached from Your Centercode FTP:
ftp bucket files:
fileName - the exact name of the file to attach or the folder path from the root (Format: folder/folder/filename.zip)
For Files Linked to Other Storage Locations:
label - The name of the external file (Format: text)
url - The full URL location of the external file (Format: text)
size - The size of the file, displayed to testers (Format: numeric)
sizeUnit - The unit of measurement for the size above, such as MB, KB, GB, etc. (Format: text)
openInNewWindow - Designate if clicking the link should open a new browser window (Format: ‘true’ or ‘false’)
Include In Download Block - Whether the file should be included in the default “block” at the bottom of the release, grouping all similar files together (Format: ‘true’ or ‘false’)
logDownloadAttempts - Whether clicks or attempted downloads should be logged within Centercode (Format: ‘true’ or ‘false’)
III. Using Your Release API Integration
The final check of this integration requires an external POST to be sent from your release management system to the API Endpoint URL we saw earlier in this guide (step I.5). Once you send the JSON payload to us using the correct Endpoint URL and valid JSON payload, our side will create the Release in the designated Release Type and with the settings you provided in the Release Type configuration and within the JSON body.
Your Testers’ Experience
Based on settings, testers interact with your automated releases just like manual ones. If configured with Single Active Release enabled, as you post new ones, old ones go away. Just like your manual Releases today, your customizable HTML body can contain a quick update, an external link to documentation, or comprehensive release notes with whatever details you need.
- Make sure you’re baking this into your Project Templates. Project-specific fields like the Project Key and Release Type ID found in the endpoint URL are easily templated.