Tools for automating routine Virto Commerce developing processes.
- Mass clone and update from git repositories
- Mass build for modules
- Module, theme, storefront and common types of repositories supported
- Multi-configuration support. Prepare independent configurations and switch between them easily.
- Multi-branch support
- Mass create symbolic links for Virto Commerce modules
- Fast IIS Application Pool recycle
- Node.js
- npm
- Virto Commerce Platform running on local IIS (dedicated Application Pool)
- Download / clone the tools repository;
- Run
npm install
; - Configure environment in
.env
file:CONFIG
- name for currently active configurationLOGIN
- username for repository authenticationPASSWORD
- password for repository authentication
- Prepare the configuration:
- Create a copy of
config.json
for active configuration (defined in previous step):config.{active configuration}.json
- Configuration:
directories.repositoriesRoot
- local root folder for the repositoriesdirectories.platformModulesRoot
- Modules folder location for VC Platformbuild.msbuildPath
- full path tomsbuild.exe
. Note: the path depends on Visual Studio version and edition.build.nugetPath
- path tonuget.exe
. It's ok to leave the default value.iis.appcmdPath
- path to "IIS command line administration tool" (appcmd.exe
). It's ok to leave the default value.iis.apppool
- name of IIS Application Pool used by VC Platform applicationbranch.all
- array of branches to pull while updating the repositoriesrepositories
- array of repositories. Single entry structure:{ "name": "default", // custom name for the repository "type": "theme", // { module | storefront | theme } "url": "https://github.com/VirtoCommerce/vc-theme-default" // repository URL },
- Create a copy of
npm run init
- clone all repositoriesnpm run update
- update all repositories (all branches defined inbranch.all
)npm run build-modules
- restore nuget packages and build modulesnpm run mklinks
- create directory symbolic links for each module indirectories.platformModulesRoot
(elevated permissions needed)npm run restart-iis
- recycle Application Pool defined iniis.apppool
(elevated permissions needed).