Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

salesforce-deploy

cesconix28MIT1.2.6

Utility to deploy cartridges on a Salesforce Commerce Cloud instance

salesforce, demandware, deploy, webdav, cartridge, upload

readme

Salesforce Deploy

cartridges deploy made easy

build status npm version dependencies devDependencies vulnerabilities coverage javascript style guide conventional commits

Utility to deploy cartridges on a Salesforce Commerce Cloud instance.

Installation

npm install salesforce-deploy

Usage

import deploy from 'salesforce-deploy'

deploy({
  hostname: "<sfcc-instance-hostname>",
  username: "<business-manager-username>",
  password: "<business-manager-password>",
  cartridges: [
    { source: "<cartridges-path>" },    
    { source: "<cartridges-path>", exclude: "<glob-pattern>" }
  ],
  codeVersion: "<code-version>",
  force: false
})

Parameters

Parameter Type Mandatory Default Description
hostname String yes | Hostname of the SFCC instance
username String yes | Business Manager username
password String yes | Business Manager password
cartridges String, Array yes | Local source paths where the script will look for cartridges to deploy
codeVersion String yes | Name of the code version to deploy
force Boolean no false Flag to remove existing code version before deploy

Returns

A Promise fulfilled with true if deploy process succeded, otherwise false.

Example - Deploy cartridges from a single folder

import deploy from 'salesforce-deploy'

let deployed

try {
  deployed = await deploy({
    hostname: "dev01-realm-customer.demandware.net",
    username: "bm_user",
    password: "bm_pass",
    cartridges: "./cartridges/project_1",
    codeVersion: "v1.0.0-rc.0"
  })
} catch (e) {
  deployed = false
}

console.log(deployed) // true for sure!

Example - Deploy cartridges from multi folder

import deploy from 'salesforce-deploy'

let deployed

try {
  deployed = await deploy({
    hostname: "dev01-realm-customer.demandware.net",
    username: "bm_user",
    password: "bm_pass",
    cartridges: [
      { source: "./cartridges/project_1" },    
      { source: "./cartridges/project_2", exclude: "**/{cart,checkout/**" } // `exclude` property value must be a glob pattern
    ],
    codeVersion: "v1.0.0-rc.0"
  })
} catch (e) {
  deployed = false
}

console.log(deployed) // true for sure!

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT. Copyright (C) 2018, 2019 Francesco Pasqua.

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.2.6 (2019-10-18)

Bug Fixes

  • change webdav method unzip to UNZIP (b7c91ab)
  • minor changes for js standard syntax (21f2ae1)
  • minor changes for js standard syntax (315683b)

1.2.4 (2019-02-12)

Bug Fixes

  • webdav: unzip method to uppercase (180dfd4)

1.2.3 (2019-02-12)

Bug Fixes

  • webdav: trasform http webdav methods to uppercase (a705f83)

1.2.2 (2019-02-11)

1.2.1 (2019-02-11)

Bug Fixes

  • add fallback archive parent dir on working directory (563b0ec)

1.2.0 (2019-02-11)

Features

  • add maxBodyLength limit on upload helper (e8d6b5e)

1.1.0 (2019-01-18)

Features

  • add event emitter to emit progress notification (50fd95f)
  • add remove, unzip, upload helpers (593f224)
  • create authenticate helper (d0c9979)
  • create helper to fetch instance versions (10e2b22)
  • create helper to find webdav resource (b7549d1)
  • create helper to make directory on webdav server (07ebc40)
  • create helper to make zip archive (2411a84)