DevOps serie CI/CD en SAP BTP (Parte 4)

Esta es una serie de entradas para configurar y deployar de manera eficiente mediante SAP BTP nuestras aplicaciones.

Aunque podemos generar des de BAS nuestro MTAR, necesitamos que se genere de una manera centralizada y ordenada. Vamos a configurar el servicio de SAP Continuous integration & Delivery para que nos haga esta tarea.

Generando MTAR ( SAP Continuous integration & Delivery ) de manera manual

Lo siguiente sera preparar el servicio para generar el fichero MTAR cuando los cambios lleguen a la rama master/main. Para simplificar, no utilizaremos GIT Flow en esta fase inicial, lo veremos mas adelante, enviaremos de momento los cambios de nuestro código a nuestra rama master… Ya sabes, esto solo es para fines educativos 😉

En entornos de desarrollo podemos habilitar los permisos de desarrollador para nuestra cuenta CF pero nos exponemos a que el desarrollador pueda borrar instancias del space, así que podríamos decir que el rol de desarrollador de una cuenta foundry debería ser el de un responsable de desarrollo.

El MTAR lo podemos generar fácilmente des de nuestra subcuenta cuenta BTP, pero si queremos un proceso automático podremos utilizar el servicio «Continuous integration & Delivery».

Este es su acceso:

Una vez en el servicio, crearemos un JOB. Este será el responsable de recibir los avisos cuando la rama del GIT se modifique y ejecutará los pasos para construir nuestro MTAR.

Añadiendo las credenciales

Creando las credenciales en GITHUB

Lo primero sera añadir nuestras credenciales en un baúl seguro, lo mínimo es añadir las credenciales de Github. Pero antes, necesitaremos obtener estas credenciales. Actualmente muchos de los repositorios git solicitan credenciales temporales. (Veréis que mas o menos todos los git funcionan igual)

Así que vamos a generar las credenciales git. Accedemos a github y pulsamos sobre nuestro perfil y en la opción «settings»:

En el menu izquierdo de «settings», pulsamos sobre «Developer settings», luego «Personal access tokens» y por último en «Generate new token».

Para generar el token necesitaremos informar alguna configuración, os pongo un ejemplo NADA PRODUCTIVO, ya que no caduca nunca el password y le he dado todos los permisos. Finalmente pulsamos «Generate token»

Una vez generada ya tendremos la «contraseña», guardarla en un sitio seguro ya que una vez cerrada la ventana no lo podremos volver a recuperar.

Guardando las credenciales de Github

Podemos volver al servicio de CD/CI y crear un nuevo baúl de credenciales:

Añadimos las credenciales GIT, estas serán del tipo «Basic Authentication»

Añadiendo las credenciales de la instancia de transport management

En esta parte, necesitaremos los datos de la key generados en el punto «Transport cloud management«. Estos datos los encontraremos en:

Necesitaremos copiar el json que nos muestra la opción «view».
Creamos unas nuevas credenciales como en el paso anterior, es decir:
Y seleccionamos el tipo «Service Key», a parte añadiremos el json copiado en el paso anterior:

Ya lo tenemos todo apunto a nivel de seguridad, vamos a por el repositorio.

Añadiendo el repositorio

Con las credenciales apunto, vamos a registrar el repositorio. Vamos a la opción Repositories y pulsamos el boton «+».

Lo siguiente es obtener la URL de nuestro repositorio, para ello, vamos a Github, al repositorio y pulsamos sobre «Code». Allí está la URL de clonado:

Con estos datos ya tenemos todo lo necesario para finalizar el registro del repositorio.

Creando el JOB

Vamos a por el último paso, el job:

Lo primero sera añadir la configuración del repositorio. En el JOB podemos tener varios generadores de MTAR uno por cada rama, por ejemplo uno para la rama de desarrollo y otro para la master.

Los primeros datos que añadiremos son el repositorio que hemos dado de alta antes, y la rama.

En la sección de stages se configura los pasos para generar la aplicación. Esto puede incluir validaciones de código, compresión de ficheros, etc… si somos muy restrictivos podríamos bloquear la generación del código si no cumple alguna de las directivas. pero esto lo veremos mas adelante.

De momento activaremos lo que nos requiere menos esfuerzo «Lint Check» que nos validará los ficheros XML y JS. Así quedara nuestra configuración.

Por último pulsamos en «Create» y probaremos el job de manera manual pulsando al botón play.

Validamos el resultado, si todo es correcto esto es lo que veremos

Siguiente paso, vamos a configurar el servicio de transport management y a conectarlo con este servicio.


Este post corresponde a una serie de post relacionados con DevOps y en concreto con la parte de CI/CD. Si te ha gustado suscribete, dale a la campanita de notificaciones y comparte en redes para estar a la última. Vota Like / Dislike para aportar feedback.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.