Saltearse al contenido

Despliegue a producción

Para que nuestra nueva versión de aplicación esté disponible para todos los usuarios, necesitamos seguir los siguientes pasos:

  • Release: genera un release commit (compromiso de lanzamiento) y un tag
  • Publish: convierte la app version en un candidate version (versión candidato), generando así una build interna con propósitos de testing (pruebas)
  • Validate: comprobar si existe algún problema con la versión candidato.
  • Deploy: actualiza a la última versión estable todas la cuentas con la aplicación instalada.
  • Promote: deja disponible la nueva versión para todos los usuarios finales.

mockup

Gráfico extraído de la documentación oficial de VTEX IO.

Ahora veamos de manera práctica punto por punto:

Release

Para iniciar un nuevo release debemos usar la siguiente instrucción en la terminal: vtex release seguido del tipo de versión que corresponda a nuestros cambios patch, minor, major.

Basándonos en el semantic versioning, entendemos que:

1
major minor patch
2
"version": "0. 0. .1"

Incrementar la versión ocasiona lo siguiente:

  • Modifica el manifest.json con la nueva versión.
  • Actualiza el CHANGELOG.md y agrega un TAG de versión.
  • Envía los cambios al respositorio de la aplicación.

Veamos un ejemplo teniendo la siguiente app en nuestro manifest.json:

manifest.json
1
{
2
"name": "io-template",
3
"version": "0.0.1"
4
//resto del json....
5
}

  • Liberando una versión patch stable
Ventana de terminal
vtex release patch stable
manifest.json
1
{
2
"name": "io-template",
3
"version": "0.0.2"
4
}

  • Liberando una versión minor stable
Ventana de terminal
vtex release minor stable
manifest.json
1
{
2
"name": "io-template",
3
"version": "0.1.0"
4
}

  • Liberando una versión major stable
Ventana de terminal
vtex release major stable
manifest.json
1
{
2
"name": "io-template",
3
"version": "1.0.0"
4
}

Publish

Luego de liberar una nueva versión, debemos publicar la aplicación para que pueda ser instalada en los ambientes que sean necesarios para hacer pruebas y validar su correcto funcionamiento. Con esto generamos una versión candidato.

Ejemplo práctico:

  1. Publicar el candidato.

    terminal
    vtex publish
  2. Validar la versión candidato

    Crear un workspace de tipo producción para simular el comportamiento esperado:

    terminal
    vtex use {nombre-del-workspace} --production

Deploy

Si la aplicación ya fue publicada y validada, ingresamos la siguente instrucción en nuestra terminal.

terminal
vtex deploy {appvendor}.{appname}@{appversion}

Ejemplo práctico:

terminal
vtex deploy cruce.store-theme@0.2.10

Una vez realizado el caché de VTEX tiene un tiempo promedio de treinta a cuarenta minutos antes de que impacten los cambios.

Si ya estamos seguros de que todo funciona correctamente y nuestras validaciones son satisfactorias, podemos optar por otro método en el cuál no existe un tiempo de espera, el promote

Promote

Para hacer un promote, primero necesitamos estar situados en un workspace de tipo producción. Este workspace será nuestro candidato a ser promovido, es decir que todos los cambios hechos en nuestras aplicaciones serán enviados directamente al Master y por lo tanto afectará a los usuarios finales.

Un vtex promote:

  • requiere de un workspace productivo.
  • se realiza después de una etapa de Testing / QA.
  • no tiene tiempo de cache.
  • afecta directamente a producción.
  • es estrictamente necesario si queremos que nuestra aplicación sea pública y pueda ser instalada en nuestra (u otras) tiendas.

Ejemplo:

terminal
vtex workspace promote

Ejemplo práctico:

terminal
vtex {tu-workspace-productivo} promote
# o si estamos parados en el repositorio de nuestra aplicación:
vtex promote