DIA DevOps Scripts Guide
The toolchain behind DIA's Salesforce projects: one JavaScript CLI and a Bitbucket Pipelines setup that deploy metadata safely, repeatably, and without doing more work than a change requires.
Every DIA Salesforce repository ships the same DevOps toolchain — the dia-scripts CLI and the CI
pipeline that drives it. This guide is for the developer working on a DIA project who needs that
toolchain to make sense: how to run it, how to configure it for a project, and — when the time
comes — how to extend it.
What this toolchain is, and is not
A flexible wrapper around Salesforce's deployment machinery: it decides what to deploy, in what order, with which safeguards. It cannot make Salesforce deploy faster — a large change is a large deployment — so it works by not asking the platform to do more than the change needs.
Find your way
This guide is organised into four kinds of documentation, each answering a different need. Pick the one that matches what you are doing now.
-
Learning-oriented. Start here if the toolchain is new to you — we set it up together and take one change through to a running org.
-
Task-oriented. You know the goal — enable delta for a stage, add a workaround, maintain the pool — and want the steps to reach it.
-
Information-oriented. The dry facts: every CLI command, npm script, pipeline step and environment variable, looked up when you need them.
-
Understanding-oriented. How the pieces fit and why the toolchain behaves as it does — the architecture, the branch/org model, delta deploys, pooling.
The shape of it
graph LR
Dev["Developer
feature branch"] -->|opens PR| Gate["CI validates
the change"]
Gate -->|merge| Deploy["CI deploys
to the stage org"]
Deploy --> Orgs["SIT → UAT → PRODUCTION"]
Three layers do the work — the pipeline definition with its npm scripts, the dia-scripts CLI, and
the task scripts the CLI orchestrates; the three-layer architecture
walks through them.
Which repository does this describe?
This guide describes the DIA Salesforce template, the canonical implementation. A client
project forks the template and may carry deliberate deviations — defer to a project's own
README.md when the two disagree.