1 | # Exito CLI
|
2 |
|
3 | ## Instalación
|
4 |
|
5 | ```bash
|
6 | npm i exito
|
7 |
|
8 | npm i -g exito
|
9 | ```
|
10 |
|
11 | Comandos 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 |
|
63 | Start `npm run ts-watch`
|
64 |
|
65 | local `sudo npm link` ò `node npm link`
|
66 |
|
67 | ## Publicar en npm
|
68 |
|
69 | Publish to npm `sudo npm publish`
|
70 |
|
71 | ### How to create new module
|
72 |
|
73 | 1. Create the module for the command in the folder `./modules`
|
74 |
|
75 | 2. 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 |
|
127 | Para 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 |
|
129 | El 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 |
|
162 | Con 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 |
|
219 | eyJoaXN0b3J5IjpbMTc5ODQ4MTUxMl19
|
220 | -->
|
221 |
|
222 | ```
|
223 |
|
224 | ```
|