The CLI publish command
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:
Usage
You can use the command as follows:
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:
| Option | Required | Description |
|---|---|---|
-n, --environment-name | No | The Sitecore environment to use. Default: default. |
-c, --config | No | Path to root sitecore.config directory (default: cwd). |
-l, --languages | No | Comma-separated list of languages to publish. If unspecified, all languages are published. |
-p, --path | No | Deprecated. Sitecore item path or GUID to smart publish. If unspecified, then the entire database is published. |
-r, --republish | No | Use republish. If unspecified, then smart-publish is used instead. |
-pt, --targets | No | List of target databases to publish. If unspecified, it publishes to the default publishing target (the first one in the list). |
-v, --verbose | No | Report additional diagnostic and performance data. |
-t, --trace | No | Report additional diagnostic and performance data. |
-?, -h, --help | No | Help for the command. |
Examples
The following are examples of the publish command use:
| Command | Result |
|---|---|
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 testEnv | Publishes Sitecore items to the environment with the name testEnv. |
dotnet sitecore publish -l en-US,en-CA | Publishes 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 CustomTarget2 | Publishes items to the CustomTarget1 and CustomTarget2 database targets. |
dotnet sitecore publish -v | Creates 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 -t | Creates 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:
You can use the following options with the list-targets subcommand:
| Option | Required | Description |
|---|---|---|
-c, --config | No | Path to root sitecore.config directory.Default: current working directory. |
-n, --environment-name | No | Named Sitecore environment to use. Default: 'default'. |
-v, --verbose | No | Write additional diagnostic and performance data. |
-t, --trace | No | Write additional diagnostic and performance data. |
-?, -h, --help | No | -?, -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:
You can use the following options with the item subcommand:
| Option | Required | Description |
|---|---|---|
-n, --environment-name | No | The Sitecore environment to use. Default: default. |
-c, --config | No | Path to root sitecore.config directory.Default: cwd. |
-l, --languages | No | Comma-separated list of languages to publish. If unspecified, all languages are published. |
-p, --path | No | Sitecore item path or GUID to smart publish. |
-r, --republish | No | Use republish. If unspecified, then smart-publish is used instead. |
-pt, --targets | No | List of target databases to publish. If unspecified, it publishes to the default publishing target (the first one in the list). |
-sub, --subitems | No | Publish subitems. Default: false. |
-rel, --related | No | Publish related items. Default: false. |
-v, --verbose | No | Report additional diagnostic and performance data. |
-t, --trace | No | Report additional diagnostic and performance data. |
-?, -h, --help | No | Help for the command. |
For example, to publish a single item, including its subitems and related items, you run the following command: