sfpowerscripts icon indicating copy to clipboard operation
sfpowerscripts copied to clipboard

A build system for modular development in Salesforce

DeepScan grade CodeFactor

npm Docker Image Version (tag latest semver) FOSSA Status CII Best Practices

License: MIT

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://docs.dxatscale.io/projects/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://docs.dxatscale.io

The project is delivered as a SFDX CLI Plugin that can be deployed in any CI/CD system, The plugin is available in NPM or can be used by using the docker image

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.

CI/CD Reference Implementation

Getting started guides for popular CI/CD platforms along with reference pipelines are available here

Docker

Docker images for sfpowerscripts are available at GitHub Container Registry.

We recommend using the sfpowerscripts docker image to avoid breakages in your CI/CD 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. Join our Slack Community as well.

License

FOSSA Status