PowerOn Pipelines is an extension for Azure DevOps which brings managed releases and version control to Symitar, the Jack Henry™ credit union core platform.
What can I do with PowerOn Pipelines?
Keep your organization's production code safe with the tasks in PowerOn Pipelines. With PowerOn Pipelines, you can begin to create true CI/CD for your PowerOn files—that deploy, install, and even validate your PowerOns all through an Azure Pipeline.
Here are the capabilities that are available in PowerOn Pipelines:
Symitar Integration - Choose between SSH or HTTPs connectors to safely and securely deploy, install, and validate PowerOn within an Azure Pipeline
Symitar Integration
Connect to your Symitar core through an Azure Pipeline to validate PowerOns when a PR is opened or deploy & install when they're complete. Each task supports both connection methods:
Available Tasks:
SynchronizeDirectory - Synchronizes any Symitar directory (PowerOns, LetterFiles, DataFiles, or HelpFiles) with your repository. Choose between HTTPs (faster) or SSH connection.
ValidatePowerOn - Validates PowerOn files which have been modified between branches in your Symitar repository. Choose between HTTPs (fastest) or SSH connection.
Directory Types:
| Type | Symitar Directory | Default Local Path | Install Support |
|------|-------------------|-------------------|-----------------|
| powerOns | REPWRITERSPECS | REPWRITERSPECS/ | Yes |
| letterFiles | LETTERSPECS | LETTERSPECS/ | No |
| dataFiles | DATAFILES | DATAFILES/ | No |
| helpFiles | HELPFILES | HELPFILES/ | No |
All tasks include a connectionType picker that allows you to select:
HTTPs (faster) - Uses our fast API over HTTPs for rapid deployment and validation
SSH - Connects directly over SSH for maximum compatibility
All synchronization tasks require specifying a syncMode:
Push - Upload local files to Symitar (one-way upload)
Pull - Download files from Symitar to local (one-way download)
Mirror - Make Symitar match the local directory exactly, including deleting extra files on Symitar
Configuration
PowerOn Pipelines uses a configuration file to define branch-to-Sym mappings and other settings. Create a .poweron-pipelines/config.yml file in your repository root:
# .poweron-pipelines/config.yml
# Local directories for each Symitar directory type (must end with /)
inputs:
powerOnsDirectory: REPWRITERSPECS/
letterFilesDirectory: LETTERSPECS/
dataFilesDirectory: DATAFILES/
helpFilesDirectory: HELPFILES/
# Map branches to Sym numbers for validation and deployment
branchSymNumbers:
main: 0 # Production Sym
staging: 627 # Staging Sym
# PowerOns to install after synchronization (optional)
installPowerOns:
- MYSPECFILE.INSTALL
# PowerOns to skip during validation (optional)
validateIgnorePowerOns:
- TEST.PO
- DEPRECATED.PO
Configuration Options
Option
Description
Default
inputs.powerOnsDirectory
Directory containing PowerOn files (must end with /)
REPWRITERSPECS/
inputs.letterFilesDirectory
Directory containing LetterFiles (must end with /)
LETTERSPECS/
inputs.dataFilesDirectory
Directory containing DataFiles (must end with /)
DATAFILES/
inputs.helpFilesDirectory
Directory containing HelpFiles (must end with /)
HELPFILES/
branchSymNumbers
Map of branch names to Sym numbers
{}
installPowerOns
PowerOn files to install after sync
[]
validateIgnorePowerOns
PowerOn files to skip during validation
[]
Usage
This section provides a quick overview of the primary use cases for the tasks available in PowerOn Pipelines. Be sure to also check out our official PowerOn Pipeline Docs
With PowerOn Pipelines, your organization gains version control for the Symitar environment and the ability to have managed releases through native Azure DevOps role-based approvals. We will also soon be releasing Deployment Protections within PowerOn Pro giving your org the flexibility to prevent deployments to target Syms and gate everything through Azure DevOps using Prod, UAT, and Staging environments.
The Symitar repository
Your organization will need to have a central Symitar repository which will be the source of truth for what should exist on your remote Symitar host.
In the repository, you can place all PowerOn files under a configurable directory. In the screenshot above, we chose to take the default REPWRITERSPECS/ which mirrors the remote directory name on the Symitar host.
Making PowerOn changes
The intent behind our validation tasks is that prior to checking in a PR, and when creating an official build, the updated PowerOns can be validated to ensure they function properly after deployment.
If you've managed to forget to validate a PowerOn prior to upstreaming the changes, these tasks will prevent those changes from getting too far in the development lifecycle. Once you've identified if any PowerOn needs attention, you can publish new changes to get them fixed.
After completing the PR, you can also do a final check for changed PowerOns between check ins when creating the Official Build for Symitar.
Deploying PowerOn to different stages
Manage the state of any Sym using build artifacts from your Symitar repository that works both forwards and backwards in time. Additionally, you can run in a dry run mode to observe the changes prior to physically deploying them.
Create a classic release pipeline to deploy build artifacts to your Prod, UAT, and Staging environments. As mentioned above, you can include a Validation stage that instructs an engineer to view & sign-off on the dry run results prior to giving the final deployment approval.
We at Libum are committed to improving the software development process of Jack Henry™ credit unions. The best way for you to contribute / get involved is communicate ways we can improve the PowerOn Pipelines feature set.