/sfpowerscripts

A build system for package based development in Salesforce , delivered as a sfdx plugin that can be implemented in any CI/CD system of choice https://sfpowerscripts.dxatscale.io

Primary LanguageTypeScriptMIT LicenseMIT

DeepScan grade Build Status CodeFactor

npm (tag) npm (tag) npm Docker Image Version (latest semver)

License: MIT

npm Docker Pulls

Join slack

sfpowerscripts

A build system for package based development in Salesforce , delivered as a sfdx plugin that can be implemented in any CI/CD system of choice.Read more about the plugin and details here - https://dxatscale.gitbook.io/sfpowerscripts/

Features

  • Features an Orchestrator, which utilizes sfdx-project.json as the source of truth for driving the build system, ensuring very low maintenance on programs often dealing with multiple number of packages
  • Builds packages in parallel by respecting dependencies
  • Ability to selectively build changed packages in a mono repo
  • Ability to deploy only packages that are changed in repo
  • Pooling commands to prepare a pool of scratch org's with packages pre installed for optimized Pull/Merge Request validation
  • Artifacts Driven, all create commands produce an artifact or operate on an artifact
  • Integrate with any CI/CD system of choice
  • All commands are enabled with statsD, for collecting metrics about your pipeline.

There are lot more features to explore. Read more at https://dxatscale.gitbook.io/sfpowerscripts/features

The project is delivered as a SFDX CLI Plugin that can be deployed in any CI/CD system, The plugin is available here

Motivation

  • Need for artifact driven build system for package based development models especially on complex and large programs

  • Providing additional functionality that is either not supported by the sfdx-cli, such as data packages or automatically understanding tests in a given package

  • Ease of use, one should not be spending too much time scripting a pipeline.

Sample Pipelines

Sample pipelines demonstrating the usage of sfpowerscripts are available here

Docker

Docker images for sfpowerscripts are available at Docker Hub.

The sfpowerscripts docker image has the following SFDX CLI plugins installed:

We recommend using the sfpowerscripts docker image to avoid breakages in your CICD pipelines due to updates in sfpowerscripts or any of its dependencies such as the SFDX CLI.

Build Instructions

To build sfpowerscripts execute the following on the terminal:

npm i -g lerna #Install Lerna Globally
cd <sfpowerscrips directory> # Navigate to the checked out directory 
lerna bootstrap
lerna run build

To run unit tests

lerna run test

To debug and test plugin

 cd sfpowerscripts-cli
 sfdx plugins:link

Maintainers

List of Maintainers are available in the link

Where do I reach for queries?

Please create an issue in the repo for bugs or utilize GitHub Discussions for other queries