{"id":20604629,"url":"https://github.com/virtocommerce/vc-build","last_synced_at":"2026-03-06T12:05:49.915Z","repository":{"id":39267156,"uuid":"371729366","full_name":"VirtoCommerce/vc-build","owner":"VirtoCommerce","description":"Virto Commerce CLI","archived":false,"fork":false,"pushed_at":"2025-04-14T08:04:23.000Z","size":910,"stargazers_count":6,"open_issues_count":0,"forks_count":5,"subscribers_count":14,"default_branch":"dev","last_synced_at":"2025-04-14T09:22:57.325Z","etag":null,"topics":["automation","build","build-tool","continuous-delivery","continuous-integration"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VirtoCommerce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-28T14:36:48.000Z","updated_at":"2025-04-14T08:01:14.000Z","dependencies_parsed_at":"2023-02-16T17:16:09.340Z","dependency_job_id":"e01b8ab3-4c63-4f0b-97ca-069dfa3661b8","html_url":"https://github.com/VirtoCommerce/vc-build","commit_stats":null,"previous_names":[],"tags_count":228,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtoCommerce%2Fvc-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtoCommerce%2Fvc-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtoCommerce%2Fvc-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VirtoCommerce%2Fvc-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VirtoCommerce","download_url":"https://codeload.github.com/VirtoCommerce/vc-build/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248992953,"owners_count":21195114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","build","build-tool","continuous-delivery","continuous-integration"],"created_at":"2024-11-16T09:24:13.471Z","updated_at":"2026-03-06T12:05:49.842Z","avatar_url":"https://github.com/VirtoCommerce.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\n\nThe VirtoCommerce Global Tool (vc-build) is the official CLI [.NET Core GlobalTool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools) that helps you build, test and deploy releases, create and push NuGet packages, provide package management for projects based on VirtoCommerce, and automate common DevOps tasks. It is powered by [nuke.build](https://nuke.build/) - a cross-platform build automation system with C# DSL, that provides an approach to embrace existing IDE tooling and state where everyone in a team can manage and change the build scenarios. This allows writing build scenarios in C# and debugging them in Visual Studio. Also, along with cross-platform support, it was the best choice for us to build our own build automation solution on top of this project.\n\nCheck out [the project source code](https://github.com/VirtoCommerce/vc-build) for the implementation details.\n\n![vc-build CLI](docs/media/cli-tools-1.png)\n\n## The key features:\n\n[Build automation](docs/CLI-tools/build-automation.md) \n\n- build and bundle a module project (both managed and scripted parts)\n- discover and run all the unit tests from the solution\n- create and publish NuGet packages for projects from your solution, this can be helpful if you intend to re-use a module's logic in another project, you will be able to quickly publish the needed version as a NuGet package. In the private or public NuGet registry\n- include targets that allow performing various additional quality checks such as static code analysis (currently we support out-of-the-box integration with SonarCloud)\n\n[Packages management](docs/CLI-tools/package-management.md) \n\n- install, update, uninstall modules \n- install and update a platform application\n- prepare backend package with specific versions of the platform and modules from the manifest file\n  \n[The platform cold start optimization and data migration (WIP)](docs/CLI-tools/cold-start-and-data-migration.md)\n\n- platform start optimization (slow run on Azure case)\n- get idempotent SQL scripts for all modules EF migrations with the ability to apply them in a specific order without installed platform and source code (helpful for migration from VirtoCommerce platform version 2 (latest) to version 3)\n\n## Before you start\nBefore you start using `VirtoCommerce.GlobalTool`, install the following in order to use all its functionality:\n\n- .NET SDK 5.x\n- Node.js 12.x\n- Git SCM\n\n## Installation\nRun this command to install `VirtoCommerce.GlobalTool` on your machine:\n```console\n\ndotnet tool install VirtoCommerce.GlobalTool  -g\n\n```\n\n## Updating \nRun this command to update `VirtoCommerce.GlobalTool` to the latest version:\n\n```console\n\ndotnet tool update VirtoCommerce.GlobalTool -g\n\n```\n\n## Getting started\nTo use `VirtoCommerce.GlobalTool` by invoke the tool run the following command: `vc-build`\n\nTo get the list of all targets:\n```console\n\nvc-build help\n\n```\nCommand output:\n\n```console\nNUKE Execution Engine version 5.0.2 (Windows,.NETCoreApp,Version=v2.1)\n\nTarget with name 'help' does not exist. Available targets are:\n  - ChangeVersion\n  - Clean\n  - ClearTemp\n  - Compile\n  - CompleteHotfix\n  - CompleteRelease\n  - Compress\n  - GetManifestGit\n  - GrabMigrator\n  - IncrementMinor\n  - IncrementPatch\n  - Init\n  - InitPlatform\n  - Install\n  - InstallModules\n  - InstallPlatform\n  - MassPullAndBuild\n  - Pack\n  - Publish\n  - PublishManifestGit\n  - PublishModuleManifest\n  - PublishPackages\n  - QuickRelease\n  - Release\n  - Restore\n  - SonarQubeEnd\n  - SonarQubeStart\n  - StartAnalyzer\n  - StartHotfix\n  - StartRelease\n  - SwaggerValidation\n  - Test\n  - Uninstall\n  - Update\n  - UpdateManifest\n  - ValidateSwaggerSchema\n  - WebPackBuild\n```\n\nTo get help for the specific target:\n```console\n\nvc-build help NameOfTheTarget\n\n```\n\n## Usage examples\nBelow you can see how the specific target could be used\n\n### Compress\nThe target is used to create a redistributed zip archive for a module or platform. After executing, the resulting zip is placed in `artifacts` folder.\nTo execute this target, you need to run this command in the root module folder of the cloned from GitHub repository.\n\n```console\n\nvc-build compress\n\n```\n\nConsole output\n\n```console\n\n═══════════════════════════════════════\nTarget             Status      Duration\n───────────────────────────────────────\nClean              Executed        0:00\nRestore            Executed        0:07\nCompile            Executed        0:06\nWebPackBuild       Executed        0:00\nTest               Executed        0:05\nPublish            Executed        0:01\nCompress           Executed        0:01\n───────────────────────────────────────\nTotal                              0:23\n═══════════════════════════════════════\n\n```\n\n### StartRelease, CompleteRelease, QuickRelease, StartHotfix, CompleteHotfix\nUsed to automate the routine operations with release branches\n#### StartRelease:\n- creates and pushes the new branch release/*version* from dev\n#### CompleteRelease:\n- merges release/*version* into master and pushes\n- merges into dev branch, increments version's minor and pushes\n#### QuickRelease: \n- triggers StartRelease and then CompleteRelease\n#### StartHotfix:\n- increments version's patch in master\n- creates and pushes the new branch hotfix/*version*\n#### CompleteHotfix:\n- merges hotfix branch into master\n- adds tag and pushes\n\n### Packages management\nThe `vc-build` provides the set of targets that allow you to easily install, uninstall, and update platform dependencies by simple CLI commands execution.\n\n#### Install\n\n```console\nvc-build install (with no args)\nvc-build install -platform -version \u003cversion\u003e\nvc-build install -module \u003cmodule\u003e -version \u003cversion\u003e\nvc-build install -module \u003cmodule\u003e:\u003cversion\u003e\n```\n\nThis command downloads and install into the current folder the platform or modules with versions that are passed as the command parameters or defined in `vc-package.json`. \n\n`vc-package.json` - file is used to maintain the list of installed modules with their versions. This allows `vc-build` to easily restore the platform with the modules when on a different machine, such as a build server, without all those packages.\n\n\n- `vc-build install (with no args)`\n\nThis target downloads and install into the current folder the platform and modules with versions described in `vc-package.json`. \nIf `vc-package.json` is not found in the local folder, by default the command will download and install the latest platform and modules versions that are marked with the `commerce` group.\n\nBy default, `install` target will install all modules listed as dependencies in `vc-package.json`.\n\nExamples:\n```console\nvc-build install \n```\n\n- `vc-build install -platform -version \u003cversion\u003e`\n\nFetch and install the platform with the specific version. If the platform with specified version does not exist in the registry, then this will fail.\nIf no version is specified, the latest platform version will be installed.\n\nExamples:\n```console\nvc-build install -platform\nvc-build install -platform -version 3.55.0\n```\n\n- `vc-build install -module -version \u003cversion\u003e`\n\nInstall the specified version of the module. This will fail if the version has not been published to the registry.\nIf no version is specified, the latest module version will be installed.\nYou can also install multiple modules with a single command by specifying multiple modules with their versions as arguments.\n\nIf the module to be installed has dependencies, their latest versions will be installed along with it.\n\nThis command also modified the `vc-package.json` with the installed dependencies after successful command execution.\n\nExamples:\n```console\nvc-build install -module VirtoCommerce.Cart\nvc-build install -module VirtoCommerce.Cart -version 3.12.0\nvc-build install -module VirtoCommerce.Cart:3.12.0 VirtoCommerce.Core:3.20.0\n```\n\n#### Update\n\n```console\nvc-build update (with no args)\nvc-build update -platform -version \u003cversion\u003e\nvc-build update -module \u003cmodule\u003e -version \u003cversion\u003e\n```\nThis command will update the platform and all modules listed to the version specified by `\u003cversion\u003e`, respecting semver.\nIf `\u003cversion\u003e` is not specified the component will updated to the latest version.\nIf no args are specified, the platform and all modules in the specified location will be updated.\n\nThis command also updated the installed dependencies versions in the `vc-package.json` \n\nExamples:\n```console\nvc-build update\nvc-build update -platform\nvc-build update -platform -version 3.14.0\nvc-build update -module VirtoCommerce.Cart\nvc-build update -module VirtoCommerce.Cart -version 3.30.0\n```\n\n#### Uninstall\n```console\nvc-build uninstall -module \u003cmodule\u003e\n```\nThis uninstalls a module and completely removes all modules that depend on it.\nIt also removes uninstalled modules from your `vc-package.json`.\n\nExamples:\n```console\nvc-build uninstall -module VirtoCommerce.Cart\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtocommerce%2Fvc-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtocommerce%2Fvc-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtocommerce%2Fvc-build/lists"}