UNPKG

11.7 kBMarkdownView Raw
1# Exito CLI
2
3## Instalación
4
5```bash
6npm i exito
7
8npm i -g exito
9```
10
11Comandos disponibles:
12
13```bash
14$ exito
15
16 Usage: exito <command> [options]
17
18 Commands:
19
20 init Create basic files and folders for your VTEX app
21
22 credentials Manage your credentials for aws
23 credentials get Gets the current credentials used in aws
24 credentials clear Clear the current credentials used in aws
25 credentials set <username> <pwd> Sets the current credentials for aws
26
27 aws Aws options
28 aws clone <criteria> [branch] [all] Clone specific list of projectos from aws, if your add the option <all>
29 aws runGitCommand <commandTouse> Run the indicate git command in all projects selected
30
31 run Options to run with the cli
32 run command <location> <command> Option to run a command in a list of projects, pass the directory to run and the command to execute.
33 You can pass in the arg `command` the interpolation $name and the cli replace this point with the project name
34 run triggersPut Command to create the trigger in CodeCommit, Run a local triggers.json
35 run triggersTest Tet trigger in CodeCommit, Run a local triggers.json
36 run overWriteDependencies <criteria> Overwrite the current dependencies in base to the file `update-dependencies.json`
37
38 generate Generate options for the project
39 generate configDependencies <criteria> Create file config.json with the current dependencies for vtex projects
40 generate vtexJson Create the json file config of vtex
41 generate workspaces Create the workspaces config for develops
42 generate sonar <repository> <version> <src> Create the sonar file for test
43 generate trigger <arn> Create the triggers config for the indicate projects
44 generate triggerConfig Create the trigger-config file for indicate the trigger options
45
46 vtex Vtex options
47 vtex run <command> [all] Execute specific command from vtex, the current commands support is: <link>, <publish>
48 vtex install <adminPackage> Install the dependencies in the current project with npm or yarn
49 vtex coverage Run the coverage process in the project
50 vtex publish <command> Publish only one component into Vtex
51 vtex login <account> <workspace> <email> <token> Set credentials for vtex in the config file from vtex
52 vtex setVendor <vendor> Set the vendor name in the manifest file
53 vtex updateDepProject Update the current project in the deps
54
55 Options:
56
57 -h, --help show help information
58
59```
60
61## Desarrollo local
62
63Start `npm run ts-watch`
64
65local `sudo npm link` ò `node npm link`
66
67## Publicar en npm
68
69Publish to npm `sudo npm publish`
70
71### How to create new module
72
731. Create the module for the command in the folder `./modules`
74
752. Add the command in the tree of commands in the file `./modules/tree.ts` for allow the use of the command.
76
77
78### Guide to use
79
80#### Comandos `exito vtex`
81
82`exito vtex run <command> [all]`: Comando que permite ejecutar el comando indicado en todos los proyectos encontrados tanto en el directorio actual como en los subdirectorios, los proyectos encontrados se organizan en orden de importancia de las dependencias, los comandos que se pueden pasar son `vtex link` | `vtex publish`
83
84> Ejemplo: `exito vtex run 'vtex link'`
85
86> Puede emplear el flag `--scape` para escapar un texto con caracter especial. esto se emplea en integración continua donde se reemplazan los especacións y los caracteres `&&` por caracteres que el comando entiende y los reemplaza al momento de ejecutar los comandos indicados.
87
88`exito vtex install <adminPackage>`: Comando que permite realizar la instalación de las dependencias del proyecto encontrado en el directorio actual, este comando solo se emplea para integración continua y permite encontrar los proyectos clonados en dicho proceso. se puede indicar con que se quiere instalar las dependencias ya sea `yarn` o `npm`
89
90> Ejempo: `exito vtex install yarn install`
91
92`exito vtex publish <command>`: Comando que permite publicar el proyecto que se encuentre en el directorio actual o en los sub directorios.
93
94> Ejemplo: `exito vtex publish 'vtex workspace use master && vtex publish --verbose'`
95
96`exito vtex login <account> <workspace> <email> <token>`: Comando que permite iniciar sesión por medio de consola con vtex, requiere los parámetros indicados para realizar la validación, obtiene el token a emplear para el proceso de vtex.
97
98`exito vtex setVendor <vendor>`: Comando que permite encontrar un proyecto en el directorio o subdirectorio actual y sobre escribir el vendor del proyecto que se encuentre.
99
100> Ejemplo: `vtex setVendor exito` `vtex setVendor exitocol`
101
102`exito vtex updateDepProject`: Comando que permite actualizar en las dependencias el proyecto actual. toma el `vendor`.`name`@`version` del proyecto que encuentre en el directorio actual
103
104`exito vtex coverage`: Comando que permite ejecutar el proceso de ejecución de las pruebas de los proyectos.
105
106#### Comandos`exito generate`
107
108`exito generate triggerConfig`: Comando que genera un archivo base con la configuración para los triggers.
109
110```json
111[
112 {
113 "name": "develop",
114 "customData": {
115 "codeBuild": "exito-vtex-deploy-develop",
116 "vendor": "exito",
117 "workspace": "dev",
118 "codeCommitBranch": "develop",
119 "urlToClone": "https://git-codecommit.us-east-1.amazonaws.com/v1/repos",
120 "linkCommand": "vtex link",
121 "publishCommand": "'vtex workspace use master && vtex publish --verbose'"
122 }
123 }
124]
125```
126
127Para crear diferentes triggers en un solo proyecto es necesario copiar la configuración base y reemplazar los puntos importantes, `name` `code_build` `vendor` `workspace` `code_commit_branch`
128
129El atributo `url_to_clone` no se debe de cambiar, este es el endpoint para el repositorio de aws code commit
130
131##### Ejemplo
132
133```json
134[
135 {
136 "name": "develop",
137 "customData": {
138 "codeBuild": "exito-vtex-deploy-develop",
139 "vendor": "exito",
140 "workspace": "dev",
141 "codeCommitBranch": "develop",
142 "urlToClone": "https://git-codecommit.us-east-1.amazonaws.com/v1/repos",
143 "linkCommand": "'vtex link'",
144 "publishCommand": "'vtex workspace use master && vtex publish --verbose'"
145 }
146 },
147 {
148 "name": "master",
149 "customData": {
150 "codeBuild": "exito-vtex-deploy-master",
151 "vendor": "exito",
152 "workspace": "master",
153 "codeCommitBranch": "master",
154 "urlToClone": "https://git-codecommit.us-east-1.amazonaws.com/v1/repos",
155 "linkCommand": "'vtex link'",
156 "publishCommand": "'vtex workspace use master && vtex publish --verbose'"
157 }
158 }
159]
160```
161
162Con esta configuración se generarán dos triggers apuntando a diferentes branchs y llamando a diferentes codebuild. además de realizar un proceso de login en un workspace llamado `dev` y otro `master`
163
164`exito generate trigger <arn>`: Comando que genera un archivo `.json` que contiene la configuración para agregar los trigger necesarios para realizar la comunicación con el CodeBuild de `develop` o `master`.
165
166`exito run triggersTest`: Comando que se encarga de leer el directorio actual y permitir realizar la ejecución de los archivos `.json` que contienen la configuración para realizar la prueba de un trigger localmente.
167
168`exito run triggersPut`: Comando que se encarga de leer el directorio actual y permitir realizar la ejecución de los archivos `.json` que contienen la configuración para actualizar o agregar los triggers de un repositorio.
169
170`exito generate configDependencies <criteria>`: Comando que toma el archivo `current-dependencies.json` del directorio actual y genera un archivo `update-dependencies.json` con las dependencias filtradas y el formato igual al de el atributo `dependencies` del archivo `manifest.json`
171
172> ejemplo: `exito generate cd vtex.`: genera el archivo con todas la dependencias que coincidan con el criterio indicado `vtex.`
173
174> Nota: Cuando un proyecto posee más de una versión empleada actualmente, se pasa a formar el nombre de la dependencia junto a sus posibles versiones separadas por un `-` ejemplo: `"vtex.styleguide": "9.67.0-8.67.0",` donde las posibles versiones son `9.67.0` y `8.67.0`
175
176`exito generate sonar <repository> <version> <src>`: Comando para generar el archivo base de sonarQube.
177
178`exito generate workspaces`: Comando que permite realizar la creación de los branchs indicados en base a la estructura planteada de trabajo con workspace.
179
180`exito generate vtexJson`: Comando que permite generar el archivo de `.json` que vtex emplea para guardar las credenciales del usuario
181
182#### Comandos `exito run`
183
184`exito run command <location> <command>` Permite ejecutar una comando dentro de los projectos seleccionados
185
186> Ejemplo: `exito run command 'cd react/' 'tsc -p tsconfig-types.json --outDir "../../${name}"' --verbose`
187
188`exito run overWriteDependencies <criteria> [lastVersion]`: Comando que toma el archivo `update-dependencies.json` en el directorio actual y luego se encarga de buscar todos los proyectos que hayan en el directorio para listarlos y permitir la selección de los proyectos a actualizar. luego de seleccionar los proyectos se pasa a realizar una validación para saber si poseen cambios a nivel de dependencias y de ser así se pasa a actualizar las dependencias encontradas. este proceso actualiza un dígito la versión del proyecto y genera un mensaje en el archivo `CHANGELOG.md` indicanto que cambios se realizaron.
189
190> Nota: por defecto el comando trae la última versión de la dependencia que posee el proyecto. con el flag `--last` luego del criterio de búsqueda se pasa a emplear la última versión disponible de la dependencia.
191
192> Ejemplo: `exito run ov vtex. --verbose`
193
194>
195
196> Ejemplo empleando la ultima versión: `exito run ov vtex. --last --verbose`
197
198`exito run triggers`: Comando que se encarga de leer el directorio actual y permitir realizar la ejecución de los archivos `.json` que contienen la configuración para actualizar o agregar los triggers de un repositorio.
199
200#### Comandos `exito aws`
201
202`exito aws clone <criteria> [branch] [all]`: Comando que permite realizar la clonación de los proyectos de AWS en base a un criterio de búsqueda.
203
204`exito aws runGitCommand <commandTouse>` comando que permite seleccionar los proyectos en el directorio actual y se encarga de correr el comando de git indicado.
205
206#### Comandos `exito credentials`
207
208`exito credentials set <username> <pwd>`: Comando que permite guardar las credenciales que se emplean para realizar la clonación de los repositorios de AWS.
209
210`exito credentials get`: Retorna las credenciales que se están empleando actualmente
211
212`exito credentials clear`: Remueve las credenciales actuales
213
214#### Comandos `exito init`
215
216`exito init`: Comando que permite realizar la clonación de los proyectos configurados.
217
218<!--stackedit_data:
219eyJoaXN0b3J5IjpbMTc5ODQ4MTUxMl19
220-->
221
222```
223
224```