The CLI publish command

Version:

The Sitecore publishing plugin includes a publish command. This command publishes Sitecore Items.

The CLI supports all Sitecore publishing mechanisms. When you run the publish command, the CLI automatically uses the appropriate publishing method for the target environment:

  • Experience Edge publishing when Experience Edge is configured as the publishing target.

  • Publishing Service when Publishing Service is installed.

  • Default publishing when neither Experience Edge nor Publishing Service is available.

To install the publishing plugin, run the following code:

dotnet sitecore plugin add -n Sitecore.DevEx.Extensibility.Publishing

Usage

You can use the command as follows:

dotnet sitecore publish [options]
Tip

Some Sitecore CLI command examples wrap items names and other strings containing spaces in single quotes for correct interpretation by PowerShell. If you use a different command-line shell, you might have to change single quotes to double quotes.

Options

You can use the following options with the publish command:

OptionRequiredDescription
-n, --environment-nameNoThe Sitecore environment to use. Default: default.
-c, --configNoPath to root sitecore.config directory (default: cwd).
-l, --languagesNoComma-separated list of languages to publish. If unspecified, all languages are published.
-p, --pathNoDeprecated.

Sitecore item path or GUID to smart publish. If unspecified, then the entire database is published.
-r, --republishNoUse republish. If unspecified, then smart-publish is used instead.
-pt, --targetsNoList of target databases to publish. If unspecified, it publishes to the default publishing target (the first one in the list).
-v, --verboseNoReport additional diagnostic and performance data.
-t, --traceNoReport additional diagnostic and performance data.
-?, -h, --helpNoHelp for the command.

Examples

The following are examples of the publish command use:

CommandResult
Attempt to publish from the samples folder:

dotnet sitecore publish
Does not publish Sitecore items and returns the message: error: Couldn't resolve a root configuration file (sitecore.json) in the current or any parent directory. Looks like the command may have been executed outside a Sitecore project?.
Attempt to publish from the samples folder:

dotnet sitecore publish -c Prototype/
Publishes the Sitecore items from the folder samples.
sitecore publish -n testEnvPublishes Sitecore items to the environment with the name testEnv.
dotnet sitecore publish -l en-US,en-CAPublishes Sitecore items for only the specified languages (en-US,en-CA).
dotnet sitecore publish -p '/sitecore/content/Home/Test Item'Deprecated. See the item subcommand.

Publishes only the item with path /sitecore/content/Home/Test Item.
dotnet sitecore publish -pt CustomTarget1 CustomTarget2Publishes items to the CustomTarget1 and CustomTarget2 database targets.
dotnet sitecore publish -vCreates additional diagnostic and performance data, such as root config path or count of nodes with performance, for example, 73ms (8.1ms/node).
dotnet sitecore publish -tCreates additional diagnostic and performance data, such as FSIndex: Loaded filesystem indexes in, for example, 70ms (9 metadatas) or created package of 1 trees in, for example, 1983ms (9 items; 220.3ms/node).

Subcommands

The publish command has the following subcommands:

  • list-targets - displays all the publishing targets defined for an environment.
  • item - publishes a single item.

The list-targets subcommand

The list-targets subcommand reads and lists all publishing targets defined for a Sitecore environment. The list-targets subcommand requires elevated permissions.

You can run the command as follows:

dotnet sitecore publish list-targets [options]

You can use the following options with the list-targets subcommand:

OptionRequiredDescription
-c, --configNoPath to root sitecore.config directory.

Default: current working directory.
-n, --environment-nameNoNamed Sitecore environment to use.

Default: 'default'.
-v, --verboseNoWrite additional diagnostic and performance data.
-t, --traceNoWrite additional diagnostic and performance data.
-?, -h, --helpNo-?, -h, --help

The item subcommand

The item subcommand publishes a single item. The item subcommand requires elevated permissions.

You can run the command as follows:

dotnet sitecore publish item [options]

You can use the following options with the item subcommand:

OptionRequiredDescription
-n, --environment-nameNoThe Sitecore environment to use.

Default: default.
-c, --configNoPath to root sitecore.config directory.

Default: cwd.
-l, --languagesNoComma-separated list of languages to publish. If unspecified, all languages are published.
-p, --pathNoSitecore item path or GUID to smart publish.
-r, --republishNoUse republish. If unspecified, then smart-publish is used instead.
-pt, --targetsNoList of target databases to publish. If unspecified, it publishes to the default publishing target (the first one in the list).
-sub, --subitemsNoPublish subitems.

Default: false.
-rel, --relatedNoPublish related items.

Default: false.
-v, --verboseNoReport additional diagnostic and performance data.
-t, --traceNoReport additional diagnostic and performance data.
-?, -h, --helpNoHelp for the command.

For example, to publish a single item, including its subitems and related items, you run the following command:

dotnet sitecore publish item --path /sitecore/content/Home -sub -rel
If you have suggestions for improving this article, let us know!