Skip to content

Deploy — Happy Soup

sf simply cicd deploy happy-soup deploy-unpackaged

Section titled “sf simply cicd deploy happy-soup deploy-unpackaged”

Run the deploy-unpackaged stage of a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup deploy-unpackaged --ci-job-token <value> --alias <value> [--json] [--flags-dir <value>] [--debug]
[--deploy-config-file <value>] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--source-branch-name
<value>] [--start-from <value>] [--test-level <value>] [--test-suite <value>] [--tests <value>] [--vcs-host <value>]
[--vcs-provider github|gitlab]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--ci-job-token=<value> (required) [env: SIMPLY_CICD_CI_JOB_TOKEN] The CI job token used to authenticate
read-only repository clones.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file. If
not provided, derived from --source-branch-name.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
--start-from=<value> Start (or resume) the deployment from a specific job name, overriding the progress
file.
--test-level=<value> [default: RunLocalTests, env: SIMPLY_CICD_TEST_LEVEL] The Apex test level to run.
--test-suite=<value> [env: SIMPLY_CICD_TEST_SUITE] The Apex test suite to run. If specified, overrides
--test-level.
--tests=<value> [env: SIMPLY_CICD_TESTS] Specific Apex tests to run.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Run the deploy-unpackaged stage of a happy-soup deployment.
Runs the `bin/unpackagedDeploy.sh` script (if present) for each configured deployment that participates in this stage,
cloning each repo fresh and resuming from the deployment progress file unless --start-from is given.
EXAMPLES
$ sf simply cicd deploy happy-soup deploy-unpackaged --ci-job-token $CI_JOB_TOKEN --alias my-org --source-branch-name release/uat

See code: lib/commands/simply/cicd/deploy/happy-soup/deploy-unpackaged.js

sf simply cicd deploy happy-soup deployment-close-out

Section titled “sf simply cicd deploy happy-soup deployment-close-out”

Archive the deployment config file used for a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup deployment-close-out --ci-commit-ref-name <value> --ci-pipeline-id <value> --ci-project-path <value>
--project-access-token <value> [--json] [--flags-dir <value>] [--debug] [--deploy-config-file <value>]
[--deploy-progress-file <value>] [--deploy-rules-file <value>] [--deploy-release-date <value>] [--source-branch-name
<value>] [--vcs-host <value>] [--vcs-provider github|gitlab]
FLAGS
--ci-commit-ref-name=<value> (required) [env: SIMPLY_CICD_CI_COMMIT_REF_NAME] The commit ref (branch) to fetch and
switch to before archiving.
--ci-pipeline-id=<value> (required) [env: SIMPLY_CICD_CI_PIPELINE_ID] The CI pipeline ID, used to build the
authenticated push remote.
--ci-project-path=<value> (required) [env: SIMPLY_CICD_CI_PROJECT_PATH] The project path (e.g. group/project),
used to build the authenticated push remote.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file to
archive, if --deploy-release-date is not provided.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-release-date=<value> The release date (e.g. 2026-01-15) used to resolve the source file as
`deployment-configs/<date>.json`, taking priority over --deploy-config-file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--project-access-token=<value> (required) [env: SIMPLY_CICD_PROJECT_ACCESS_TOKEN] A project access token with write
access, used to push the archive commit.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Archive the deployment config file used for a happy-soup deployment.
Fetches and switches to the commit ref, then copies the deployment config file that was used (either
--deploy-release-date resolved to `deployment-configs/<date>.json`, or the explicit/derived deploy config file) to
`config/deploy.json` and commits it. If no source file can be found, an existing obsolete `config/deploy.json` is
removed instead. Both cases push the change with a `[skip ci]` commit message.
EXAMPLES
$ sf simply cicd deploy happy-soup deployment-close-out --ci-commit-ref-name main --ci-pipeline-id 123 --ci-project-path group/project --project-access-token $PROJECT_ACCESS_TOKEN --deploy-release-date 2026-01-15

See code: lib/commands/simply/cicd/deploy/happy-soup/deployment-close-out.js

sf simply cicd deploy happy-soup install-packaged

Section titled “sf simply cicd deploy happy-soup install-packaged”

Install packaged dependencies into the target org for a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup install-packaged --alias <value> [--json] [--flags-dir <value>] [--vcs-host <value>] [--vcs-provider
github|gitlab] [--debug] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--install-type
All|Delta|Upgrade] [--packaging-devhub <value>]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--install-type=<option> [default: Upgrade] The type of dependency installation to perform.
<options: All|Delta|Upgrade>
--packaging-devhub=<value> [env: SIMPLY_CICD_PACKAGING_DEVHUB] Alias of the Dev Hub used to look up package
version information for upgraded packages. Must already be authenticated. Omitted
entirely (with a warning) when not provided, skipping origin lookup for upgraded
packages.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Install packaged dependencies into the target org for a happy-soup deployment.
Installs the packaged dependencies declared in `sfdx-project.json` into the target org (`--alias`), which must already
be authenticated. For every dependency that upgrades an already-installed package, records the previous/target version
and origin commit information to the deploy progress file, for `notify happy-soup` to look up related stories from
later.
EXAMPLES
$ sf simply cicd deploy happy-soup install-packaged --alias my-org

See code: lib/commands/simply/cicd/deploy/happy-soup/install-packaged.js

sf simply cicd deploy happy-soup post-deploy

Section titled “sf simply cicd deploy happy-soup post-deploy”

Run the post-deploy stage of a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup post-deploy --ci-job-token <value> --alias <value> [--json] [--flags-dir <value>] [--debug]
[--deploy-config-file <value>] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--source-branch-name
<value>] [--start-from <value>] [--test-level <value>] [--test-suite <value>] [--tests <value>] [--vcs-host <value>]
[--vcs-provider github|gitlab]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--ci-job-token=<value> (required) [env: SIMPLY_CICD_CI_JOB_TOKEN] The CI job token used to authenticate
read-only repository clones.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file. If
not provided, derived from --source-branch-name.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
--start-from=<value> Start (or resume) the deployment from a specific job name, overriding the progress
file.
--test-level=<value> [default: RunLocalTests, env: SIMPLY_CICD_TEST_LEVEL] The Apex test level to run.
--test-suite=<value> [env: SIMPLY_CICD_TEST_SUITE] The Apex test suite to run. If specified, overrides
--test-level.
--tests=<value> [env: SIMPLY_CICD_TESTS] Specific Apex tests to run.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Run the post-deploy stage of a happy-soup deployment.
Runs the `bin/postDeploy.sh` script (if present) for each configured deployment that participates in this stage,
cloning each repo fresh and resuming from the deployment progress file unless --start-from is given.
EXAMPLES
$ sf simply cicd deploy happy-soup post-deploy --ci-job-token $CI_JOB_TOKEN --alias my-org --source-branch-name release/uat

See code: lib/commands/simply/cicd/deploy/happy-soup/post-deploy.js

sf simply cicd deploy happy-soup post-destructive

Section titled “sf simply cicd deploy happy-soup post-destructive”

Run the post-destructive stage of a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup post-destructive --ci-job-token <value> --alias <value> [--json] [--flags-dir <value>] [--debug]
[--deploy-config-file <value>] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--source-branch-name
<value>] [--start-from <value>] [--test-level <value>] [--test-suite <value>] [--tests <value>] [--vcs-host <value>]
[--vcs-provider github|gitlab]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--ci-job-token=<value> (required) [env: SIMPLY_CICD_CI_JOB_TOKEN] The CI job token used to authenticate
read-only repository clones.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file. If
not provided, derived from --source-branch-name.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
--start-from=<value> Start (or resume) the deployment from a specific job name, overriding the progress
file.
--test-level=<value> [default: RunLocalTests, env: SIMPLY_CICD_TEST_LEVEL] The Apex test level to run.
--test-suite=<value> [env: SIMPLY_CICD_TEST_SUITE] The Apex test suite to run. If specified, overrides
--test-level.
--tests=<value> [env: SIMPLY_CICD_TESTS] Specific Apex tests to run.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Run the post-destructive stage of a happy-soup deployment.
Runs the `bin/postDestructive.sh` script (if present) for each configured deployment that participates in this stage,
cloning each repo fresh and resuming from the deployment progress file unless --start-from is given.
EXAMPLES
$ sf simply cicd deploy happy-soup post-destructive --ci-job-token $CI_JOB_TOKEN --alias my-org --source-branch-name release/uat

See code: lib/commands/simply/cicd/deploy/happy-soup/post-destructive.js

sf simply cicd deploy happy-soup pre-destructive

Section titled “sf simply cicd deploy happy-soup pre-destructive”

Run the pre-destructive stage of a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup pre-destructive --ci-job-token <value> --alias <value> [--json] [--flags-dir <value>] [--debug]
[--deploy-config-file <value>] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--source-branch-name
<value>] [--start-from <value>] [--test-level <value>] [--test-suite <value>] [--tests <value>] [--vcs-host <value>]
[--vcs-provider github|gitlab]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--ci-job-token=<value> (required) [env: SIMPLY_CICD_CI_JOB_TOKEN] The CI job token used to authenticate
read-only repository clones.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file. If
not provided, derived from --source-branch-name.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
--start-from=<value> Start (or resume) the deployment from a specific job name, overriding the progress
file.
--test-level=<value> [default: RunLocalTests, env: SIMPLY_CICD_TEST_LEVEL] The Apex test level to run.
--test-suite=<value> [env: SIMPLY_CICD_TEST_SUITE] The Apex test suite to run. If specified, overrides
--test-level.
--tests=<value> [env: SIMPLY_CICD_TESTS] Specific Apex tests to run.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g. gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting platform
to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Run the pre-destructive stage of a happy-soup deployment.
Runs the `bin/preDestructive.sh` script (if present) for each configured deployment that participates in this stage,
cloning each repo fresh and resuming from the deployment progress file unless --start-from is given.
EXAMPLES
$ sf simply cicd deploy happy-soup pre-destructive --ci-job-token $CI_JOB_TOKEN --alias my-org --source-branch-name release/uat

See code: lib/commands/simply/cicd/deploy/happy-soup/pre-destructive.js

sf simply cicd deploy happy-soup tag-deployment

Section titled “sf simply cicd deploy happy-soup tag-deployment”

Tag the current commit with details about a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup tag-deployment --ci-merge-request-iid <value> --ci-merge-request-project-url <value> --ci-pipeline-id <value>
--ci-pipeline-url <value> --ci-project-path <value> --project-access-token <value> --alias <value> [--json]
[--flags-dir <value>] [--debug] [--deploy-progress-file <value>] [--deploy-rules-file <value>] [--vcs-host <value>]
[--vcs-provider github|gitlab]
FLAGS
--alias=<value> (required) [env: SIMPLY_CICD_ALIAS] Salesforce org alias.
--ci-merge-request-iid=<value> (required) [env: SIMPLY_CICD_CI_MERGE_REQUEST_IID] The merge request's
internal ID (IID), used to build the merge request link in the tag message.
--ci-merge-request-project-url=<value> (required) [env: SIMPLY_CICD_CI_MERGE_REQUEST_PROJECT_URL] The project's URL,
used to build the merge request link in the tag message.
--ci-pipeline-id=<value> (required) [env: SIMPLY_CICD_CI_PIPELINE_ID] The CI pipeline ID.
--ci-pipeline-url=<value> (required) [env: SIMPLY_CICD_CI_PIPELINE_URL] The CI pipeline URL, included in
the tag message if provided.
--ci-project-path=<value> (required) [env: SIMPLY_CICD_CI_PROJECT_PATH] The project path (e.g.
group/project), used to build the authenticated push remote.
--debug [env: SIMPLY_CICD_DEBUG] Enable verbose debug logging.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to
the deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path
to the deployment rules file.
--project-access-token=<value> (required) [env: SIMPLY_CICD_PROJECT_ACCESS_TOKEN] A project access token with
write access, used to push the tag.
--vcs-host=<value> [env: SIMPLY_CICD_VCS_HOST] The source-control host to talk to (e.g.
gitlab.com).
--vcs-provider=<option> [default: gitlab, env: SIMPLY_CICD_VCS_PROVIDER] The source-control-hosting
platform to talk to.
<options: github|gitlab>
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Tag the current commit with details about a happy-soup deployment.
Authenticates to the target org, derives an org domain prefix from its instance URL, and creates an annotated git tag
(`deployed--<org-domain-prefix>-<timestamp>`) recording the deployment time (America/New_York) and, if provided, the
associated pipeline and merge request links. The tag is pushed to the source repository.
EXAMPLES
$ sf simply cicd deploy happy-soup tag-deployment --alias my-org --ci-pipeline-id 123 --ci-pipeline-url https://gitlab.example.com/group/project/-/pipelines/123 --ci-project-path group/project --ci-merge-request-iid 45 --ci-merge-request-project-url https://gitlab.example.com/group/project --project-access-token $PROJECT_ACCESS_TOKEN

See code: lib/commands/simply/cicd/deploy/happy-soup/tag-deployment.js

Validate deployment configuration files for a happy-soup deployment.

USAGE
$ sf simply cicd deploy happy-soup validate [--json] [--flags-dir <value>] [--deploy-config-file <value>] [--deploy-progress-file <value>]
[--deploy-rules-file <value>] [--source-branch-name <value>]
FLAGS
--deploy-config-file=<value> [env: SIMPLY_CICD_DEPLOY_CONFIG_FILE] Path to the deployment configuration file. If
not provided, derived from --source-branch-name.
--deploy-progress-file=<value> [default: DEPLOY_PROGRESS.json, env: SIMPLY_CICD_DEPLOY_PROGRESS_FILE] Path to the
deployment progress file.
--deploy-rules-file=<value> [default: config/deploy-rules.json, env: SIMPLY_CICD_DEPLOY_RULES_FILE] Path to the
deployment rules file.
--source-branch-name=<value> [env: SIMPLY_CICD_SOURCE_BRANCH_NAME] The source branch name for the deployment, used
to derive the deployment config file path if --deploy-config-file is not provided.
GLOBAL FLAGS
--flags-dir=<value> Import flag values from a directory.
--json Format output as json.
DESCRIPTION
Validate deployment configuration files for a happy-soup deployment.
Validates the deployment config file (explicit, or derived from --source-branch-name) and, if --deploy-rules-file is
given, the deployment rules file. A missing file is skipped with a warning; a malformed or schema-invalid file fails
the command.
EXAMPLES
$ sf simply cicd deploy happy-soup validate --source-branch-name release/uat
$ sf simply cicd deploy happy-soup validate --deploy-config-file deployment-configs/uat.json --deploy-rules-file config/deploy-rules.json

See code: lib/commands/simply/cicd/deploy/happy-soup/validate.js