Aprende Spring Modulith: de monolito a microservicios sin problemas: crea un pipeline de CI/CD | Ezekiel Eromosei | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aprende Spring Modulith: de monolito a microservicios sin problemas: crea un pipeline de CI/CD

teacher avatar Ezekiel Eromosei

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción a la tubería

      1:10

    • 2.

      Herramientas de canalización necesarias

      0:25

    • 3.

      Diagrama de flujo de tuberías

      12:02

    • 4.

      Inicio de la tubería

      9:52

    • 5.

      Primera ejecución del oleoducto

      13:55

    • 6.

      Variable de impresión

      10:27

    • 7.

      Print env para todos los niveles

      5:43

    • 8.

      Acciones personalizadas en canalizaciones

      11:38

    • 9.

      Elimina el proceso de composición en Spring Boot Docker y omite la prueba

      15:14

    • 10.

      Contenedores de servicio de tuberías

      15:04

    • 11.

      Corrección de errores en Pipeline Maven

      10:29

    • 12.

      Pipeline explica los cambios de compilación

      10:41

    • 13.

      Artefacto de carga en canalizaciones

      11:50

    • 14.

      Contenido de descarga en pipeline

      10:40

    • 15.

      Inicio de sesión en Docker en pipeline

      12:09

    • 16.

      Imagen push en Docker de pipeline

      7:48

    • 17.

      Secretos de env en tuberías

      6:27

    • 18.

      Cierre de pipeine

      1:58

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

1

Estudiante

--

Proyecto

Acerca de esta clase

Esta clase es la segunda entrega de la clase 1.

Sin embargo, se puede tomar de manera aislada ya que los conceptos centrales son agnósticos de clase 1 y

te guiarán a través de las herramientas que usaremos: versión comunitaria de Intellij, Github (TODOS SON GRATUITOS).

  • Aprenderás a crear un proceso de CI-CD
  • aprenderás sobre trabajos y pasos
  • aprenderás a ejecutar trabajos en paralelo o secuencialmente
  • Aprenderás a inyectar variables de entorno
  • aprenderás a usar los secretos
  • Aprenderás a usar acciones personalizadas
  • aprenderás sobre los runners y los contenedores de servicio
  • aprenderás cuándo improvisar para escribir scripts personalizados en bash
  • aprenderás a subir y descargar artefactos para trabajos dependientes 

Conoce a tu profesor(a)

Teacher Profile Image

Ezekiel Eromosei

Profesor(a)
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción a la tubería: Oye, mira aquí, defiéndete al campeón, defiéndete por el campeón. Para que realmente lo hagas aquí, eres un campeón absoluto. Has podido completar la primera clase, que es el módulo principal que presenta, y ahora estás aquí para entender el pipeline de CICD para ver cómo todo irá de extremo a extremo Tenga en cuenta que vamos a estar viendo el CICD central, lo que implica, cosas como pasos de trabajo Inyección de variable de entorno, inyección de secretos, uso de acción personalizada, almacenamiento y descarga de artefactos, destripar imágenes de Docker, o iniciar sesión y empujar a DockerHub, todos estos muchos más los encontrarás Te voy a llevar antes que nada, vas a pasar por una muy agnóstica Ese es un paso agnóstico modulítico. Simplemente queremos decir. Eso es bebé bueno, en realidad. Simplemente queremos decir, lo tomaré a través de pipeline en serio pipeline, no favoreciendo ningún lenguaje de programación ni ninguna aplicación Entonces luego adaptamos las cosas o llevamos a casa para que veas cómo aplicar a la aplicación modular que construías en primera clase, ¿verdad Esto y muchos más vas a ver este caso y promete ser acelerado y muy atractivo. Te veré en el siguiente video. 2. Herramientas de canalización necesarias: Hola a todos. Vamos a estar hablando de las herramientas que se utilizan en esta clase. Muy fácil. Todavía nos vamos a apegar a nuestro IDE. No vamos a usar nada diferente. Construiremos directamente dentro del Intellig. Intellig sólo es suficiente. Simplemente estamos aprovechando Intellig y Github. Eso es todo lo que necesitamos. Con este set, veré en el siguiente video. 3. Diagrama de flujo de tuberías: Hola a todos. Z aquí. Bien. Esta sección se centra principalmente en tratar de automatizar nuestra imagen pero. Entramos antes de ahora, sesión Do We esa es la producción muy características. Lo que hicimos fue intentar construir la imagen manualmente. Ejecutamos el manual de comandos de Docker. No tenemos que hacer eso. Afortunadamente para nosotros, estaremos haciendo uso de las acciones de Git, ¿verdad? Entonces, la idea detrás de la idea detrás de usar un pipeline es todo acerca de la automatización, tratando de eliminar las entradas de los usuarios. Eso es lo que estamos tratando de hacer. Una vez que lo configuras, puedes estar seguro de eso y está probado, es infalible así que vienes por Eso es lo que pretendemos hacer aquí. Aprovechando esto, antes que nada, hagamos una idea de lo que pretendemos hacer Voy a usar a Jerod Ohio. Esta es una herramienta gratuita, que también puedes usar, ¿verdad? Creo que son mis proyectos pasados. Déjame simplemente descarriar Sí, ya tengo todo listo. Sólo toma el relevo. Bien. Todo bien. Entonces, apalanquemos vamos a tener algunos de lo que pretendemos construir. Lo que vamos a hacer es que vamos a tener dos secciones, ¿no? Vamos a tener estas dos secciones. La primera sección va a ser la sección de belleza, ¿verdad? Vamos a tener la sección Pero. Déjeme traer esto. Déjame escoger alguna imagen. Déjame escoger esto, los generales piensan que creo que esto debería ser suficiente T debería ser suficiente. Bien. Entonces vamos a tener, creo, déjame tomar un mensaje de texto. Entonces vamos a ir a tener sección Pero. Bien, entonces vamos a tener dos secciones. Dejemos las secciones. Tienes dos secciones, las secciones van a ser la sección de compilación, y luego también tenemos la imagen push. Vamos a llamarlo sección push image, ¿verdad? Tenemos que entender lo que hace esto, entonces nos da una buena idea de lo que queremos hacer. Todo bien. Voy a tratar de representar esto de manera diagramática. Empecemos. Sí. Entonces cuando empujas tu código, verdad, qué esperas que suceda? Empuja tu código, quieres que algo así como un laboratorio de tuberías automatizado en marcha para ejecutar tu código, una vez que ejecutas tu código, entonces probablemente en un entorno virtual o en un entorno particular, intenta construir tus dependencias móviles, saca todos los detalles, ¿verdad Así que tengámoslo en mente. Siempre nos referimos a este tipo mientras construimos. Lo primero es una vez que empujamos, así que etiquetemos ese código push. Este es el único paso que probablemente necesites para hacer push tu código. Entonces una vez que empujas tu código, ick. Una vez que empujas tu código, lo siguiente es que quieres impulsar el entorno virtual. Permítanme etiquetar esto como un entorno virtual. Vamos a escoger esto. Escoge esta entropía aquí Vamos a llamarlo entorno virtual, llamémoslo a través del entorno virtual. Vamos a llamarlo solo entornos literales virtuales, entornos o un contenedor, como sea, ¿verdad? Aquí es donde se pondrá tu código. Entonces una vez que tienes esto, lo siguiente es entonces ¿qué quieres que pase dentro de este tipo? Lo que quieres que suceda es que quieres configurar tu Java, configurar Java Beameber como un entorno local, tienes que configurar Java, configurar Maven, configurar Maven, luego tirar dependencias, tirar dependencias Dependencias. Yo deletreé estas dependencias. Pull dependencias, ¿verdad? Una vez que seas capaz de hacer esto, sacamos dependencias que básicamente queremos ejecutar Lo que queremos hacer es mirarlo, cuál es el siguiente paso que probablemente quieras hacer. El siguiente paso serán las dependencias pull. Después de configurar Java, o entorno podemos poner dependencias. ¿Qué quiere hacer el anidamiento? Queremos construir la imagen. Queremos construir la imagen. Pasemos eso a otra sección más. Llámalo imagen. Pero la imagen. Usemos una flecha para la dicción del flujo. Tomemos estas cosas cielo producción de flujo. Este tipo viene aquí. Entonces tenemos esto. Entonces también tenemos este derecho. Bien, entonces imagen de belleza. Entonces esto es lo que pasa. Entonces en el momento en que empujas un código para levantarte, esto sucede, luego construye una imagen. Entonces después de construir tu imagen, construyes tu frasco Lo sentimos, esto debería ser un archivo de Jar de belleza, no imagen, tarro. Eso es a lo que me refiero. Lo siento. Así Pero Ja archivo. Después de construir el archivo Ja, ¿ qué quieres hacer? Recuerda, tenemos un comando que hace que es el Mv en paquete limpio. Recuerden eso. Entonces eso es lo que vamos a usar. Entonces Construye Jar, digamos Pero Jar con perfil. Recuerda, especificamos mucho perfil, ¿cuáles son los perfiles que tenemos? Déjame revisar el costo otra vez. Este es el módulo. Tenemos al Dev, al Docker. No queremos usar Dev, porque este es mi entorno local. Probablemente queremos usar esto yo diría, Vamos pero creo que esto va a ser suficiente. Usemos este perfil que es Docker. Si estás usando el perfil, que es Docker. ¿Correcto? Si lo estás usando, entonces tenemos que especificar el perfil acoplable Pero tarro con perfil. Creo que ustedes entienden lo que estoy tratando de traer aquí. Bien. Vamos a estar seguros de que Ja archivo pero con éxito. Vamos a estar seguros de que Ja archivo con éxito. Vamos a hacer vamos a enumerar el archivo. Vamos a enumerar los peros del archivo. Eso nos dará una buena idea si hemos hecho la maduración, ¿verdad? Hecho la escritura. S, llamemos a esto por qué vamos a llamarlo es archivos de lista. Cuando digo archivos de lista, queremos enumerar cuál es el jar que se construyó en el directorio o los me gusta. Ahora bien, esto es más como el primer paso. Sin embargo, es un entorno virtual. Este es el primer paso para construir la imagen. Ahora, ahora queremos ir a otra sección, esa sección será un caso donde queremos empujar la imagen, ¿verdad? Ahora quieres construir la imagen per se. Ese es el deseo de construir la imagen de la aplicación, ellos quieren empujar. Entonces para hacer eso, bien, voy a agregar dos pasos más a esto. Puedes hacer todo esto de una sola vez, ¿verdad? Pero voy a agregar dos pasos más a esto. Y la razón es porque deliberadamente quiero mostrarte algunas características sobre las acciones de engranaje, ¿verdad? Así que características sobre la acción del engranaje. Entonces lo que haría es que entraré aquí y diría que vamos a subir el artefacto Ahora bien, ¿por qué es esto necesario? Esto es necesario porque siempre podemos activar el mismo trabajo o podemos guardar nuestros artefactos pero los usamos para más adelante. Voy a decir subir artefactos. Esto es muy esencial. Una vez que descubre que hay una parte en la que puedes guardar fácilmente las cosas en caché, no a realmente amigo, lo que vamos a ver principalmente dentro esta sección porque no queremos estar tirando de las dependencias cada vez Queremos realmente almacenar en caché para asegurarnos de que las cosas realmente se muevan. Entonces empujamos la imagen, configuramos nuestros detalles, construiremos el jar con el perfil. Quieren enumerar los archivos que queremos usar que sean necesarios para construir la imagen. El archivo que se necesita, al parecer, creo que tenemos que pensarlo, creo que necesitamos nuestro archivo JA, necesitamos nuestro archivo Docker Esos son principalmente los dos archivos primarios que necesitamos para construir realmente nuestra imagen porque el archivo Docker nos dirá nosotros decimos exactamente cómo queremos construir la imagen Entonces el archivo Ja es básicamente la guía que ejecutamos dentro del contenedor. Queremos subir. Déjame ser consistente, sube artefacto. Paso uno. Nosotros tenemos esto. Paso dos. Paso dos ahora, ¿qué estamos haciendo en el paso dos? Nosotros queremos tomar esto. Queremos descargar los artefactos. ¿Quieres descargar los artefactos Artefactos, T en descarga artefacto Después de descargar el artefacto, vamos a dar salida al contenido También enumeremos los contenidos que tenemos. Vamos a enumerarlo. Vamos a enumerar el contenido. Vamos a enumerar los contenidos. Vamos a enumerar el contenido. Vamos a estar seguros de que lo que subimos es lo mismo que hemos descargado, ¿ verdad? Vamos a enumerar el contenido. Esto es yo sé por qué es bonito, pero solo quiero elaborar. Entonces una vez que lo hemos hecho ahora tenemos esto. El siguiente paso es básicamente que queremos iniciar sesión. Recuerda, o bien estás usando Docker Hub, quieres empujar Docker Hub por registro privado O Docker Hub un registro privado, básicamente necesitas iniciar sesión, necesitas iniciar sesión en el entorno Para Docker hago Docker login. Hay un comando llamado Docker login que necesitas usar realmente, pero es una mejor manera de ver Aquí decimos vamos a iniciar sesión. Yo solo diré Docker login. Entonces voy a iniciar sesión. Entonces, cuando inicio sesión porque eso realmente me daría acceso completo al medio ambiente a mi cuenta de Docker Hub. Entonces voy a hacer esto. Entonces bien. Muy bien, así que inicia sesión. Recuerda, estos pasos son secuenciales. Ese es yo colocándolos de esta manera. Entonces iniciamos sesión. Entonces, ¿qué quieres hacer? Entonces después de iniciar sesión creo que el siguiente paso es claro. Vimos y empujamos la imagen. Ahora bien, debería ser Bute entonces empuja, pero lo colocaré juntos y ya ves por qué Ya ves por qué en un rato. Entonces llámalo Bute y empuja Entonces porque había algo que les voy a enseñar chicos que es realmente increíble. En lugar de construir un paso y construir, hay algo que tenemos como, Bien, déjame dejar el corte de la bolsa. Eso es básicamente lo que vamos a estar viendo en la siguiente sección, ¿verdad? Así que vamos a construir y empujar a Docker Hub, ¿verdad? Entonces una vez que lo hemos hecho, creo que nuestros pasos son tan buenos como completos, ¿verdad? Nuestros pasos son tan buenos como completos. Entonces porque ese es el objetivo principal. El objetivo principal es cuando empujamos la imagen, queremos empujar hacia fuera a Github, tenemos un entorno virtual automáticamente girar, y esto realmente construirá estos detalles. Una vez que construye detalles de Java, el Mv adentro, tira de las dependencias, quieren atrapar para más tarde para otro disparador una vez que hayas hecho esto, construyes el jar con perfil Una vez que construyas el jar, quieres listar el archivo y los archivos básicamente aquí están el Dockerfile y el archivo Quieren subir el artefacto para después que lo usemos. Ese es el paso uno. Entonces paso dos, quieres entrar aquí, descargar el artefacto, subiste aquí, lista el contenido para estar seguro es el mismo que el que tenemos aquí Entonces iniciamos sesión, no mas la imagen, no empujes a Docker Hub Estoy usando mi cuenta privada. Bien. Dicho esto, lo que voy a hacer es que voy a guardar esto y muestra parte de los archivos. Entonces voy a empujar esto a Github esta imagen a Github para que siempre puedas hacer referencia después, ¿verdad? No es por qué es bonito, pero solo quiero que ustedes tengan una idea de lo que pretendemos hacer. Entonces lo que voy a hacer por último, sólo voy a llamar a este paso uno. Paso uno, paso uno, luego escoge esto y colócalo aquí. Llamemos a esto paso dos, ¿verdad? Paso dos. Paso dos. Paso dos. Todo bien. Ahora bien, sabemos que todo esto depende el uno del otro. Pero sin embargo, sigamos en el siguiente video. 4. Inicio de la tubería: Hola a todos. Aquí Zee, gracias por volver conmigo. En el video anterior, en realidad miraste este diagrama para ver exactamente lo que vamos a estar construyendo. Siempre puedes referirte a ello. De hecho, me referiría a esto cada vez, de vez en cuando. Voy a empujar esto para que puedas asegurarte de que encuentras esto en el repositorio cuando realmente lo mires. Ahora bien, el siguiente paso en lo piensas, si piensas en esto es ¿ deberías correr esto en paralelo? El paso uno y el paso uno dependen el uno del otro. Entonces será secuencial. La respuesta es que tiene que ser secuencial porque a pesar de que pasamos por esto, todo lo que queramos hacer aquí es dependiente. El paso dos depende del paso uno. Ser el paso dos es depender del paso uno, así que tenemos que esperar a que termine la subida antes de luego ir al otro paso para realmente sacar detalles. Todo bien. Um, así que eso explicó totalmente eso. Entonces creo que ya es hora de que pasemos ahora a algo más concreto para que veamos ahora exactamente cómo tenemos planeado esto. Entonces con ese ser estaremos explorando Github. Estamos explorando GitHub para ver qué vamos a construir. Entonces esto es, bien este es uno de mis otros cursos. Déjame simplemente cambiar a mi curso. Déjame simplemente cambiar al otro curso. Bien, entonces este es el curso de swing Modult. Bien, entonces en las acciones de Git, lo siento, en GitHub, hemos llamado acciones, llamadas get actions. Entonces, acciones, se podrían ver principalmente acciones como su pipeline básico, ¿verdad? Todo lo que harás con ajo pipeline o lo harás con un archivo Jenkins, Jenkins DSL o Jenkins pipeline. ¿Verdad? Es exactamente lo mismo que harías. Ahora, solo tienen una sintaxis diferente. Pero algunas cosas son bastante similares, pero solo tienes un poco de sintaxis diferente que solías probablemente el mismo el cuerpo lograr el mismo objetivo. Entonces quiero que tengas en mente. No tienes que aprender todo, pero solo necesitas tener una buena comprensión sólida de uno. Y por eso te estoy mostrando los que realmente puedes tener para. Que son las acciones de Git. La documentación es bastante poderosa, reviso y te puedo decir que ves, no lo he aprendido todo, pero sigue siendo un buen número de cosas, pero siempre encontrarías lo que necesitas usar, siempre tienes lo que necesitas usar. Estaremos explorando las acciones de Git, y eso es exactamente lo que usaremos para construir realmente nuestro pipeline. Ahora bien, podríamos seguir adelante para decir, Bien, ya que tenemos un proyecto en movimiento, solo vamos a pew el proyecto en movimiento, pero esto habría sido bootstrapped Ya se ha arrancado a mucha gente. Yo no quiero hacer eso. Quiero mostrarnos exactamente cómo va a funcionar esto y cómo va a funcionar esto es que vamos a ir dentro de nuestros proyectos, ¿verdad? Iremos dentro de nuestro proyecto, luego dentro del proyecto. En el archivo root de tu proyecto, que es básicamente esto es exactamente lo que vas a obtener root en este archivo raíz de tu proyecto, así que este root fold nuestro proyecto, creas un directorio. Y un directorio debe estar etiquetado punto Git Hub, ¿verdad? Si no, se llama Dot Git Hub. Entonces, en el momento en que realmente presionas un GitHub de Dot, eso es exactamente lo que está esperando. Debes etiquetar un GitHub. No debe tener un nombre diferente. Punto GitHub. Así es como reconoce que estás tratando de impulsar una acción. ¿Todo bien? Bien. Entonces ahora tenemos eso. Ahora bien, ¿cuál es el siguiente paso que tenemos que hacer? Dentro de ese Github. Hay algo que se llama flujos de trabajo. El flujo de trabajo es como, tenemos varios flujos. Podrías tener dentro del mismo proyecto corten flujos. Podrías tener un flujo podrías tener diferentes flujos de implementación para varias cosas para hacer varias cosas. Pero estar enfocándonos en uno solo para desplegar o construir nuestra imagen. Dentro de esto, hay que crear otro archivo llamado workflows. Debe ser el nombre exacto por favor, el nombre exacto, flujos de trabajo. Nombre exacto. Ahora, dentro de los flujos de trabajo, no creamos un Yarmofle Ahora bien este Yarmofle podría ser cualquier nombre en absoluto. Podría tener cualquier nombre, pero debe ser un archivo Yamal. Voy a llamar a este despliegue punto Yamal. Este es el tipo que estaría usando. Ahora automáticamente, tengo que hacerlo, tengo una inteligencia aquí diciendo ahora se puede crear un archivo sin que necesite todas estas propiedades. Vamos a llegar a esto llegamos a esto en unos pedacitos. Necesito entender esto. Volviendo a esto una vez más, he creado, estoy tratando explicar que para que tu acción se active, necesitas tener este archivo dentro tu paquete usando el archivo deploy y el archivo debe ser uso deploy Yamfi puede ser cualquier nombre Podría ser tal vez oleoducto o Yarmo no importa, pero debe ser un Yam Debe estar dentro de la carpeta workflows y roflesFolder debe ser Dt Github y Dt github debe estar en la raíz de Bien. Ya que tenemos un buen entendimiento de eso, creo que es momento de empezar a saltar. Es hora de empezar a saltar. Ahora, hay una forma básica que necesitas en realidad. Si revisas la documentación, hay un formulario básico que realmente explican. El número uno es su flujo de trabajo o su implementación. Necesita tener un nombre. tener un nombre. Vamos a darle un nombre. Tenemos un nombre. El nombre como lo llamamos, lo llamamos Creo que estamos tratando de que el objetivo sea construir una imagen, Construir imagen push. Voy a llamarlo llamémoslo una imagen build push sea cualquier cosa. El nombre podría ser push image para producción o para despliegue, quieras llamarlo, solo dale un niname Cualquier fan syname bien, Ahora, una vez que le has dado el nombre, lo siguiente es la expectancia. ¿Cómo quieres que se active esta acción? Ahora, hay varias formas, toneladas, numerosas formas en las que esto se puede desencadenar hoy en día. ¿Cómo quieres que se active? Defínelo usando la palabra clave, entonces estaré diciendo que quiero que esto se active al presionar. Ahora bien, si miras esto, ya ves, solo presiono una P. Podrías hacer esto en proyectos de pago visto, PogrQuest, Reseña de libro Entonces básicamente deberías explorar, ¿verdad? Explora. Básicamente puedes explorar. Entonces necesito realmente tener esta idea. De hecho, podrías hacer esto en temas. ¿Ves? Hay problemas. Digamos que tienes problemas. Recuerden, en realidad estábamos trabajando en temas hace algún tiempo, teníamos estos problemas de levantarse Entonces podrías trabajar en temas. Entonces, si es este proyecto, podrías trabajar en esto. Entonces se podría decir, Bien, en cuestión cerrada en libro de temas, recuerde que intentamos cerrar varios temas sobre la oportunidad con el despliegue. Entonces eso vamos a hacer. Entonces, estoy diciendo que en realidad te vendrían bien los problemas, ¿verdad? Pero nos estamos enfocando en la acción. Y lo que realmente nos interesa cuando empujamos el código para levantarnos y empujando el código para que renuncie al push es una acción push. Así que en empuje. Entonces ese es el verbo básicamente en empujar. Eso es lo que realmente estamos tratando de apuntar. Ahora, a pesar de que incluso estamos usando on push, esto en sí mismo no es suficiente. Si solo lo etiquetamos al empujar estamos diciendo algún empujón a cualquier rama, ¿verdad? Cualquier empuje a cualquier sucursal. Por suerte para nosotros, podemos ir un paso más abajo para decir, quiero especificar sucursales. ¿Ves? Podrías ignorar alguna sucursal o podrías usar alguna sucursal. Ahora, no puedo explicar completamente todo lo que tenemos sobre G action, pero solo quería tener unos pocos. Se trata de que pienses, piensa en lo que tienes que hacer. W piensas en ello, puedes acceder fácilmente a él. Ahora, podría decir, quiero que esto ejecute para la rama principal para la rama Dev, pero no debería funcionar probablemente para una rama de características. Podrías colocar la rama de característica en esto. Esto es a lo que me refiero, podría decir, mi principal objetivo es hacer que esto corra para rama principal. Esta carrera para rama principal. Entonces podría decir, quiero ignorar quiero ignorar, así que voy a ignorar por probablemente rama característica, si tengo algo llamado rama característica, ¿verdad? Esto no se ejecutará por característica mala. Si presiono algo para que aparezca pero, nunca se ejecutará, ¿verdad? Necesito tener esa idea, ¿ verdad? Esto es básicamente. Podrías ver esto, pero voy a quitar esto solo para que tengamos exactamente lo que necesitamos. Exactamente lo que necesitamos. De esta manera para que cuando estemos construyendo un proyecto personal, podamos saber exactamente lo que tenemos que hacer. Todo bien. Así que vamos a tomar un descanso impactante de construir esto así que ahora pasar a algo un poco más de detalle. Ahora el siguiente paso es, podríamos tener Recordar, tenemos variables de entorno. Estas variables de entorno a determinar. Estos chicos en realidad definimos todas estas variables de entorno. Mientras estamos corriendo, recuerden que estamos ing en gaction. Ya no estamos funcionando en mi sistema local. Como resultado, ¿dónde archivará dónde se encontrarán estos tipos? Este archivo se encontrará en entornos. Por suerte para nosotros también, tenemos lo que llamamos entorno ENV Tenemos ambiente. Puedo seguir adelante y definir todos los ambientes. Ejemplo para decir mi perfil de resorte, y perfil de resorte, ¿recuerdas que usamos perfil sprint? Esto estoy usando perfil sprint. Aunque conocemos el perfil sprint activo, el perfil de resorte es exactamente lo que se leerá en el archivo Docker Recuerda este perfil de muelle Docker aquí. Eso es que estoy siendo consistente. Todo bien. Yo podría decir perfil de giro, haz esto, digamos Docker Digo Docker, entonces probablemente modele host, el host, local host, local host Pero es una mejor manera. Este soy yo definiéndolo manualmente dentro de esto, pero darle a ella nos da algo mejor para que hagamos, algo mejor para nosotros definir dónde podrían estar todos nuestros entornos. Eso es lo que estaremos explorando en el próximo video. Nos vemos chicos. 5. Primera ejecución del oleoducto: Oigan, todos, e aquí. Bien. Entonces te lo dije sabia, debería crear otra que sea otra aplicación soy la que usamos para la acción y definimos voy a decir por qué en los bits. Esta es la razón. Duplicemos esto, llamémoslo acción. Estamos usando la acción. Ahora bien, ¿por qué he decidido hacer esto? El motivo es porque recuerda nuestro Dockerfile, esa es la aplicación, el entorno Docker, el perfil DA utiliza una herramienta DDL, perfil DA utiliza una herramienta DDL Pero eso no queremos. Eso no queremos. Queremos que este tipo sea actualización, queremos que eso sea actualización y por qué recordar que usamos Recuerda, si tenemos alguna tabla todas las tablas que realmente tenemos dentro del proyecto, estas tablas, básicamente, este tipo, todos estos chico van a estar esperando que se creen y si no se crean tron excepción. Recuerda, excepción de Mtell tran. En consecuencia, esta tabla, la excepción de Mitron. Usemos update de esa manera aseguraría que las tablas se crearan automáticamente en el entorno virtual. El miembro es un entorno virtual. Debido a que es un entorno virtual, todo lo que hacemos en cada momento muere, excepto los que atrapamos. Si alguien a quien no atrapamos, muere con el contenedor o lo vuelves a girar, así que con el entorno virtual, se recarga. Así que estamos seguros de usar actualizaciones cada vez para eso. Entonces por eso decidí usar inducción, así que no termino modificando este Dockerfile Entonces como resultado, no significa que vamos a recrear todo ¿Creamos todo una vez más? No. Entonces lo que he hecho es que he seguido adelante y creado un ambiente llamado acción. He creado un entorno llamado acción, que es exactamente la misma réplica de esto. Las únicas diferencias. La única diferencia es ésta. Las únicas diferencias. Tenemos siete variables y usándolo porque agregué un perfil. Entonces este perfil, aparte de usar acción, lo voy a editar. Voy a llamarlo acción. Entonces, la acción es lo que esperaremos. Qué está bien, acción. Déjame minimizar esto. No, no, no, no, no quiero borrar. Entonces quiero acción. Bien, entonces variable de fecha. Quiero mi contraseña. Mi código de autenticación porque lo ve como un código sensible, por lo que necesitamos realmente colocar los detalles allí. Esto está bien. De hecho ya tengo esta configuración. Así que voy a pasar mi código de autenticación. Esta es una vez que no tratamos de imitar porque no va a funcionar. Noticias de una sola vez. Todo bien. He editado esto. todo esto ya disponible, tenemos que secretar. El secreto y todo sigue igual. Entonces, para evitar confusiones cuando la gente realmente vuelve a este curso para mirar esto y decir, ¿por qué tienes? Voy a eliminar este docker y eliminar esto. Entonces tenemos acción aquí. Nosotros hemos hecho lo básico. Se completa el primer paso. Ahora bien, ¿qué es lo siguiente que queremos hacer? Ahora tenemos esto completado, entonces podemos volver a nuestro archivo, el archivo que estamos construyendo antes, este archivo de acción. Ahora bien, ya no pretendemos usar esto. Ya no estamos usando este entorno. Todo lo que tenemos que hacer entonces es que va a entrar tenemos trabajos tenemos una sección de construcción. Voy a explicar esto en un rato. Rápidamente quiero especificar dónde ubicamos el entorno. Tienen ambiente. ¿Y cuál es el nombre del medio ambiente? Acción. Por favor, no te confundas. La acción que coloqué aquí. Esta acción aquí es el perfil de resorte. Este entorno es el Docker es el entorno GitHub, entorno GitHub acción. ¿Dónde está esto? Esto consigue acción, esta acción aquí, no consigue acción, acción ambiental es este entorno. Entonces, ¿qué pasa con la acción del perfil de resorte? La acción del perfil de resorte es esta. Por favor, entienda la diferencia. No te confundas al respecto, también. Pensé que en realidad debería mencionarlo. Bien, genial. Volvamos. Entonces aquí es donde lo defines, ¿verdad? Es donde lo defines ahora. ¿Qué son los empleos? Piénsalo, podrías tener lo que quieres hacer, ¿verdad? ¿Qué quieres hacer? Piensa en los trabajos como lo mismo cuando quieres ejecutar un trabajo cron o quieres ejecutar una tarea específica Usemos esa palabra. Se quiere ejecutar una tarea específica, y esa tarea básicamente se llama jobs. Por lo que define cualquier cosa que quiera hacer se define en los trabajos. Ahora, por el nombre, se puede ver que es plural. Nadie, plural, es decir, puede ser muchos. Entonces es por eso que ahora necesitas darle un nombre a cada uno de tus trabajos. H de tu trabajo un nombre. Y es por eso que esto es se puede notar que esto está todo construido. Así que estoy llamando a esto el trabajo de Bute, ¿verdad? La sección de trabajo construido. Para que puedas nombrar en cualquier nombre. Dale una sección construida. No importa, pero solo dale un nombre para distinguir un trabajo del otro, ¿verdad? Entonces solo dejaré esto como bulled déjalo como construido. Ahora tenemos esto. ¿Bien? Entonces, ¿qué pasa la otra sección que vamos a ejecutar? La otra sección que vamos a ejecutar, se llamará la imagen push. Voy a llamarlo imagen push, ¿ verdad? Sección Push Image. Llámalo sección pushimage. Así es exactamente como. Ahora esto es quejarse porque está esperando que termine mi detalle, lo cual no he hecho, pero solo quiero mostrarles a ustedes como matrona a su Entonces podría dejar esto como Pero sección o darle un nombre, ¿verdad? Dale un nombre que lo distinga. Entonces empezaría esto porque volveremos a esto, ¿verdad? Volveremos a esto. Entonces ahora que tenemos la acción, es necesario especificar para obtener acción qué entorno desea ejecutar la aplicación, en qué entorno, ¿verdad? Qué ambiente definir realmente que tienes lo que llamamos se ejecuta en las carreras. Y se ejecuta en especificar varios contenedores que se pueden utilizar. Voy a estar usando Ubon a lo último. Cómo te estarás preguntando, ¿Cómo llegué a conocer esta información? Oh, eso es bastante fácil. Entonces, una vez que en realidad una vez que realmente vas a Gear action, vamos a ir a lo que suelo hacer Gear action job Así que esta es nuestra búsqueda usando trabajos en el flujo de trabajo usando trabajos. Entonces, si bajas, verás diciendo que estos son los trabajos que pueden correr. Vamos a darte un ejemplo típico de cómo debería ser tu trabajo. ¿Ves? Trabajos, entonces tú también un trabajo. Acabo de etiquetar acción mental dued. Así que necesitaba que viesen esto, ¿verdad? Entonces ahora que tenemos esto, volvamos. Veamos el uso de trabajos. Si quieres usar trabajo, usar trabajos en el flujo de trabajo, ¿verdad? Nosotros tenemos esto. Ahora, tenemos que configurar el corredor. Esto es lo que buscaba . Eliges un corredor, ¿verdad? Que es donde usamos las carreras. Puedes proporcionar las carreras y te indica las variaciones que puedes usar. Bajemos a ver qué se puede. ¿Ves? Si especificas un área de StreMT uno entonces, por ejemplo, aquí el trabajo solo ejecutamos en este, cual es este, ¿verdad Para que puedas explorar varios detalles al mismo, ¿verdad? Elegir corredores autoalojados. Así que busca lo que realmente necesitas. Quiero correr en Ubuntu, utilicé la palabra latest in. Usando la última versión de Ubuntu, ¿verdad? Usando la última versión de Ubuntu. Entonces estas son las versiones disponibles. Puedes ver, estas son versiones disponibles. Entonces voy a dejar este enlace, mira este enlace. Voy a dejar este enlace, ¿verdad? Estos enlaces. Entonces dejaría este enlace para ustedes chicos. Déjame pegarlo en mi archivo o colocarlo en la sección de recursos para que ustedes realmente puedan venir todos los enlaces que obtengan, que en realidad usamos para navegar. Entonces ya ves puedes especificar Linux. Se puede usar un entorno Windows, un entorno Windows. Si tu trabajo ver correr requiere un windows. Digamos que en realidad quieres algún comando que en realidad vamos a poder biz o MAC. Así que define lo que quieras. Entonces voy a estar usando y Ubuntu, voy a usar letras de Ubuntu. Dice, Ubuntu actualmente usa la imagen Upunt 22 oh four Runner, que es exactamente lo que estoy usando Entonces esto está bien. Esto es lo que voy a usar. Esto es suficiente para que hagamos lo que queremos hacer. Creo que he podido precisar. No quiero sobre azotar este tema para que ustedes siempre me puedan llamar Voy a compartir el enlace Muy bien, vamos aquí. Ahora, en realidad he dicho que voy a estar usando Ubuno más reciente Ahora lo siguiente es lo siguiente es, ¿qué pasa el entorno que voy a estar usando el entorno que voy a estar usando Recuerden, no necesito definir definiendo solo este entorno. Dentro de este trabajo, que se ejecutará en Ubuntu. Dentro de este entorno virtual Ubuntevery todos estos entornos para estar disponibles por defecto Necesito que lo tengas en mente. Todo lo disponible todo estará disponible por defecto. Ahora bien, dicho esto, la siguiente pregunta es, ¿qué es lo siguiente que quieres hacer? Ahora tenemos este ambiente. Quiero obtener mi código. ¿Cómo obtengo mi código? Pero sin embargo, ¿cómo procedes siquiera? El siguiente bit para proceder es que ahora tienes dentro de un trabajo, decir acción, cuáles son los pasos que debes realizar. Espero que me encantaría que ustedes vean esto para que esto pueda quedarse. ¿Cuáles son las acciones que quieres realizar? La acción que quieras realizar con esto se puede etiquetar como pasos. En cada paso que tengas, puedes tener varios pasos. Meme puedes tener un trabajo. Tienes varios trabajos que hacen varias cosas. Por defecto. Por defecto, cada trabajo se ejecuta en paralelo. Creo que tengo que mencionarlo. Por la documentación de voculy, cada trabajo corre en paralelo Si quieres que sea secuencial, necesitas decir realmente y hay una manera de decirlo. Les voy a mostrar en un poco cómo es. Cuando lleguemos a la sección push Im, te mostraré cómo se ejecutan los trabajos secuencialmente porque el push IM dependerá del trabajo de la sección de bits. Tenemos que decir el paso que queremos seguir y cada paso debe tener un nombre. Bien, lo que quiero hacer quiero que me enfríe. Vamos a conseguir el frío, a la fuente fría. Yo lo llamaré obtener fuente fría. Bien. Entonces tenemos algo hermoso aquí, ¿verdad? Aquí tenemos algo hermoso. Entonces, ¿cómo lo consigo? Ahora, sin siquiera proceder, hemos cubierto bastante aquí, ¿verdad? Hemos cubierto bastante, pero no he hecho nada. Entonces porque no hemos hecho nada, no quiero que sea demasiado complejo. Vamos a empujar esto, ¿verdad? Vamos a empujar esto a Github, y veamos cómo fue. Todo lo que necesitas hacer es simplemente empujar este archivo. Una vez que empujes esto, esto entrará en acción de inmediato. Entonces, cualquier cambio que ocurra en el impulso en realidad atenderá esto. Así que estoy llamando a este código fuente de invitado, sino más bien, déjame imprimir algo. Digamos que imprima algo. Entonces tu paso podría ser cualquier cosa. Yo sólo imprimo algo. Voy a llamar a esto voy a decir que nos vendría bien una carrera ahí está este comando run. Ejecuto comando. Está disponible en la sección de pasos. Solo revisa la sección de pasos, de hecho la encuentro. Voy a exhibirlo en un poco, pero vamos a hacer esto rápidamente. Voy a hacer eco. Hagamos eco de otra cosa. Hagamos eco de algo. Voy a decir, Hey módulos estoy ejecutando algo. Estoy imprimiendo algo. Algo. Y eso es todo lo que quiero hacer. Dicho esto, en realidad demos nuestra acción. Vamos a crear un problema para que podamos rastrear esto, ¿verdad? Diré que comienza la acción o simplemente llamarlo pipeline. Vamos a llamarlo gasoducto, ¿verdad? Tubería de tubería uno. De hecho, podríamos seguir uno tras otro. Voy a conmutar esto con este pipeline un mensaje. Ven aquí compromete un CM está aquí, luego cierra, ¿qué cierra? 20. Entonces esto es 20. Bien, así que vamos a empujar esto y veamos que funciona, luego volveremos a ver a Catali explorar algunas características más Pero esto es lo primero. Creo que es un buen lugar para detener el video. Entonces vamos a empujar esto. Voy a permitir rápidamente esta carrera. Entonces vayamos a mi acción adelante. ¿Un push está completo? Sí, mi empuje está completo, vamos a saltar rápido aquí. Ahora, como pueden ver, vamos a refrescarnos. ¿Puedes ver? Ves que acaba de reventar de repente No había nada bajo acciones antes que no fuera lo que hiciste. Deberíamos simplemente elegir un valor por defecto. Pero como lo etiquetamos de la manera que lo hicimos, esto ya se ha dado cuenta de que acabamos de empujar los commits con este nombre, y si lo abres, puedes ver reconoce un archivo, que es un archivo de despliegue. Se podía ver que solo establecemos la sección pero solos. Si tu mas una sección pero, ¿qué vemos? Establece un trabajo para ti automáticamente. ¿Ves? Ahora, ¿ corres cuál es tu sistema de putting? ¿Puedo ver Ubuntu? Y eso es exactamente lo que usas. Esa es la imagen del corredor, ¿verdad? Y no te preocupes por esto. Estos son todos los permisos que arma al medio ambiente para que sea ejecutar la acción es automática, ¿verdad? Entonces, aunque no totalmente automático, hay algunas cosas complejas a su alrededor, pero no creo que sea relevante para este caso. Bien, ¿lo ves? Yo solo dije que deberías correr esto y ver, oye, oye, muda, estoy manejando algo Y porque no hay nada más , dirige el trabajo y tiene éxito. Vamos, chicos, este es un buen hito. Los veré chicos en el siguiente video. 6. Variable de impresión: Hola, chicos, Z aquí. Somos capaces de correr y hacer lo primero ejecutando esto y las cosas se están perfilando. Creo que estás de acuerdo que las cosas se están perfilando. Ahora, volviendo a nuestros detalles, tenemos esto. Queremos empujar el código. Queremos empujar el código, en realidad empujamos el código, así que no lo hacemos. Por aquí, creo que me perdí un paso y el paso debería ser que necesitamos sacar el código, llamémoslo pull code porque el código push es la acción que hacemos. El código pull es lo que hará la acción Git, que es el comando, la acción Git para tirar el código al entorno, llamarlo acción pull. Creo que esto es código pull o creo que esto es en realidad más esto es mejor. Volvamos a nuestro expediente. O. Creo que alguien podría decir, pero usted acaba de imprimir algo. ¿No podemos hacer algo más asombroso que no sea simplemente imprimir? Bien. Entonces, ¿por qué no intentas tirar del ambiente, poner los detalles en el ambiente? poner los detalles en el ambiente Ahora, ¿cómo se tira? ¿Cómo se ponen los detalles en el medio ambiente? Pon los detalles en el entorno, quieres usar básicamente quieres tirar del ambiente. Tienes la acción EMV, que está disponible automáticamente para ti, porque está disponible para ti, entonces puedes tirar de eso Entonces, en realidad denotas usar esto usando un signo de $1 para aquellos que están bien llamemos a esto, tienes que llamarlo así que solo digamos programa digamos presentadores del programa, ¿verdad ? Mostrar archivo de anfitriones. Muestro presentador EAV. Muéstranos el entorno. Variable de entorno. Creo que va a estar bien. Variable de entorno. Sólo quiero mostrarles esto también funciona bien. Variable. Sólo tú lejos. Así que en realidad funcionaría, y hagamos eco de algo. Hagámoslo eco. Entonces lo llamaré así que usa interpolación de cadenas. Luego colóquelo en el medio. Entonces llamémoslo E y V. Entonces, ¿cuál es el nombre? ¿Cuál es el nombre? Comprobemos el nombre. Comprobemos el nombre que usamos. Entraré aquí, revisaré mis ambientes, abriré esto, recogeré uno de ellos. Escojamos uno de ellos. Eso sí, ni siquiera intentes iniciar sesión en esto. Esto no se mostrará porque se supone que no se debe mostrar. Si intentas registrarlo o intentas hacerlo, no se mostrará. Ya hay una regla en contra si intentas hacer eco de esto, esto ni siquiera va a funcionar. Entonces ni siquiera lo intentamos. Solo escojamos a este tipo. ¿Correcto? Así que vuelve aquí. De hecho tengo esto en realidad stat fuera. Entonces, en realidad, G Actions utiliza un doble mensajero doble Cali. Así es como Get Actions realmente lo usa. Entonces va a ser doble, ¿verdad? ¿Qué está volteando aquí? Reemplazar con un posicionador. ¿Qué es esto? Bien, no, creo que es justo. Simplemente está bien. Creo que esto es Inteligente dándome éste pero esto está bien. Bien, entonces veamos que esto funciona, ¿verdad? Chicos, veamos si esto funciona. Entonces yo lo haría hagamos reducción. Voy a llamarlo ducto dos. Cerrar esto al parecer debería ser 21 21. Lo llamaré pipeline dos, variable de entorno de impresión. Eso lo vamos a hacer. Bien. Así que vamos aquí. Vamos a crear otro tema. Vamos a crear otro número y este número se llamará Prince inn V Variable. Vamos a llamarlo pipeline. Sabemos lo que estamos haciendo pipeline, variable de entorno de impresión. Hagamos esto. Esto será 21. Eso es 221. S de 21, mirada aiable a cómo lo deletreé. Variable. Cerrar 21. Ahora bien, ¿qué lo deletreé esto? Imprimir ¿Qué estaba tratando de deletrearlo? ¿Entorno de impresión? Creo que Columbia hizo esto. Para que puedas enmendar con Git commits, da dash amend. Entonces eso modificaría tus commits. Bien, entonces algunos de los cambios, así que imprimir no imprimir imprimir, ¿de acuerdo? Para que pueda salvar esto. Bien, entonces haz Git push Bien, así que mientras esto entra, así que vayamos a los caminos, y vayamos a nuestras acciones Verás, esto ha saltado, ¿verdad? Vamos a entrar. ¿Bien? ¿Esto pasa? ¿Esto falla o C? Así que sólo puedo entrar. Al parecer, pasó. A ver, ¿apunta? No se señaló nada. Muestra eco. Déjame ver. Volvamos aquí. Traté de ejecutar esto diciendo, mostrar variable de entorno. Cuál quería pero esto no funcionó y por qué no corriste? A ver. A ver, vamos a escuchar. Donde así especifico el entorno de acción. Estoy diciendo que imprima a este tipo, pero esto no está funcionando. Cuando revisamos este lugar, revisa a este tipo, trató de mostrarlo, pero ni siquiera lo está reconociendo. Debe haber algo, debe haber un detalle, debe haber un detalle. Prácticamente podrías simplemente saltar rápidamente a la configuración. Permítanme hacer una pausa en este video y hecho volver con ustedes. Bien, chicos, leyendo la documentación, estoy viendo si están usando un ejecutor de Linux, en realidad no necesitan agregar esto. Entonces vas a probarlo, ¿verdad? No es necesario agregar esto. Simplemente puedes usarlo directamente, ¿verdad? Entonces puedo llamarlo trator ActraTorrePoints. Puntos finales del atractor. Solo queremos ver los extremos del actuador. Pero dice que también podrías usar porque es la documentación, esta comprobando documentación. Esto es variable. Es decir, además de runner, get actions permite leer o establecer valores clave, entorno, variables y contenidos están pensados para su uso en diferentes puntos. Entonces dice, por ejemplo, solo este nombre para Basell que está en el ejecutor de Linux, que estás usando el nombre de columna ENV para En un corredor de Windows. En la mayoría de los casos, también podrías usar el contexto. Dice solo usa contexto, propiedad de punto. Asumo que esto es contexto. Ese es el contexto. Puntos el nombre al que realmente queremos acceder. Vamos a imprimir esto para ver cómo funciona realmente. Hagamos esto. Yo no cambié nada, así que solo empujo esto al lado de lo mismo. Simplemente lo cometo contra el mismo nombre esta vez, pero no voy a agregar ningún comentario. No agregar ningún compromiso ningún ID. Vamos a empujar esto. Así que vamos a empujar. Veamos cómo funcionan estos. ¿Es bueno imprimirlo o averiguarlo? Entonces es corredor y va a acciones. Sí, esto se está ejecutando. Entonces, ¿vamos a ver qué pasa? Vamos a ver esto. El trabajo está iniciando. Bien, vamos a ver. Bien. Ejecutar eco, mismo trato endpoints Muestra esto, pero aún me falta esta parte, todavía me falta esta parte. Voy a ejecutarlo de nuevo y ver exactamente. Lo voy a ejecutar en el trato antes de volver para asegurarme de que funcione, luego me pondré en contacto con ustedes. Aquí, chicos. Entonces habiendo hecho un poco de investigación. Descubrí que en realidad estaba mezclando las cosas. Entonces lo que se supone que debemos tener es decir que tenemos un entorno en el que declaramos el entorno heredado algún entorno y establecemos esto a alguna variable o simplemente lo llamamos tal vez algunos datos. Algunos datos. Ahora esto está disponible a nivel de empleo. Vamos a hacer esto y voy a explicar qué significa el nivel de trabajo. Ambiente de nivel laboral, todo el entorno y nivel de paso. De hecho, podemos saber exactamente cómo usar esto realmente. Si quieres valorar esto, te diré algunos datos. Algunos datos pueden ser evaluados con esto se pueden evaluar con esto. ENV. Entonces aquí es donde usamos este EV luego dos S, ¿verdad? Suma. Bien. Entonces, para el punto final del actu, usamos la palabra clave verso Así que lo estaba fastidiando. Usa la palabra clave verso. Creo que esto es un trito ¿cuál es el nombre de nuevo? Déjame revisar mis notas. Actuador, punto final expuesto. Bien. Punto final de ActuatoRepose Entonces esto podrá imprimir esto mientras esto imprimirá lo que guardamos en la oración, ¿verdad? Esto realmente lo imprimirá . Bien, vamos a probar esto. Vamos a probar esto. Vamos a probar esto. Bien, vamos a empujar. Todo bien. Bien, esto ha pasado, así que vamos a revisar nuestro worksho Esto no es fallar. Sólo ejecuta esto de nuevo así que es un disparador, esto no es fallar. Esta genial, comenzando. Logró, veamos qué pasó. Todo bien. Comprobemos la sección. Imprimimos algo. Bien. Eso es lo que hemos hecho antes. Bien, ¿lo ves? Pude obtener esto lo que establecíamos para la salud y esto y esto también fue posible y algunos datos, obtuvimos algunos datos. Todo bien. Entonces este es el espectáculo desfilado Ahora tenemos una buena comprensión de cómo funciona. Yo mismo lo estaba mezclando. Este video ya es muy largo. Volvamos el siguiente video y explicaré cómo funciona el ambiente y pondré acción. Los veo en el siguiente video. 7. Print env para todos los niveles: Hola a todos. Z aquí. Bien, entonces estamos de vuelta aquí. Hablemos de la impresión. Hablemos de medio ambiente. Ahora, podríamos tener una ENV aquí, ¿verdad? Tenemos una ENV aquí, ambiente aquí, y tenemos ENV laboral Vamos a llamarlo, vamos a darle algún nombre. Ahora bien, esto es un JobYNV. decir, este entorno está disponible para que todos los trabajos definan estar disponibles dentro. Voy a probarlo, así que voy a venir aquí. Voy a hacer nombre. Diré imprimir, imprimir JobInv. Yo sí voy a correr. Voy a hacer eco. Trabajo ENV. ¿Qué es Jab ENV? Bien. Así que sólo voy a elegir esto. No hagas esto en casa. No copiar y pegar. Bien. Bien, entonces tenemos esto. Bien, digamos que activamos esta sección, voy a tener un paso que corre. Vamos a tener un paso que correr, y este paso queremos correr. Vamos a co. Entonces esto nos estará esperando a qué ambiente quieres construir. Así que vamos a correr en Ubunzu también, ¿de acuerdo? Vamos a correr en Ubunzu. Así que vamos a imprimir esto también, ¿verdad? Vamos a imprimir esto. Estos son totalmente yo también uso esto para demostrarnos que este trabajo en realidad se ejecuta en paralelo. ¿Ves que esto va a correr sin siquiera esperar esto? Así que vamos a tener que querer probar este entorno. Ahora, hemos podido probar el nivel de trabajo, correcto, y podemos probarlo. Entonces vamos a entrar y ver exactamente cómo se desarrolla esto, ¿verdad? Entonces también quiero mostrarnos que hay un ambiente de nivel de paso. Es un nivel escalonado. Es nivel de paso, ENV. Estoy seguro que ustedes se están dando la idea de cómo funciona esto ahora. Vamos a llamarlo paso ENV. Envidia. Ustedes pueden tener una idea de cómo funciona esto. ¿Bien? Voy a venir aquí. Yo sólo voy a Paso ENV. Yo proceso aquí. Yo bien. Entonces pon esto. Quiero mostrar el nivel laboral, el nivel de paso y para que veas que todo está disponible. Este nivel de paso no puede ser accesible aquí porque está dentro de este. Solo el nivel laboral será accesible en todos los empleos. El nivel de trabajo aquí será accesible en todos estos pasos mientras que el nivel de paso es accesible dentro de los escalones. Vamos a ejecutar esto. Vamos a ejecutar esto. Bien. Déjenme darle un nombre mejor. Vamos a darle un mejor nombre. Vamos a modificarlo. Vamos a modificarlo. El código está imprimiendo mvable todos los niveles. Tenemos esto. Vamos a todos los niveles cierra eso debería ser tránsito creo. Déjame copiar este nombre. Et va al tema de la juke. Nuevo número, este ahorro. Bien, así que vamos a guardar este 22. Así que guarda esto. Bien, así que vamos a empujar Bien, entonces esto está pasando ahora mismo está pasando vamos a saltar aquí. Tomemos nuestra acción. Abriendo como no tenemos ningún error de sintaxis. Ahora bien, puede ver que esto se está ejecutando independientemente de esto. Es un dependiente. Ves una flecha. Entonces es independiente. Te mostré que los trabajos corren paralelos. Entonces, por defecto, están corriendo en paralelo. Entonces abramos a este tipo. ¿Eso es una acción de empuje? Puedo ver, somos capaces de imprimir el ambiente laboral, que es SSSS eso es exactamente lo que realmente decimos aquí Veo SSSS que está funcionando. Echemos un vistazo a este que tiene el nivel de trabajo en la EMV para que podamos validar que el nivel de trabajo realmente imprime Entonces iré a la sección Pero. Pero serie de sección. ¿Ves que tenemos esto hecho antes de que creemos trabajo aquí ¿Puedes ver el nivel de paso SSSS? Todo esto he podido mostrarles a ustedes cómo imprimir realmente para todos los niveles. Creo que ya es bastante bueno. Ahora mismo, voy a hacer algo de limpieza entonces en realidad entraríamos en sacar el código Los veré chicos en el siguiente video. 8. Acciones personalizadas en canalizaciones: Oigan, todos. Z aquí. De hecho fuimos a la última sesión para imprimir realmente entornos en todos los niveles, en realidad hicimos esto. Entonces no sacamos esta buena sección. Cambiemos en esta parte. Cambiemos esto para que podamos dejar esto. Recuerden, les mostré en la última sección que los trabajos en realidad funcionan en paralelo. De hecho, podríamos dejar esto aquí y probablemente llamarlo sección de trabajo de muestra y simplemente llamarlo sección de trabajo Sam. Entonces podemos entrar aquí y luego dejar el que necesitamos para este proyecto, ¿verdad? Entonces lo llamaré pero sí, llamémoslo una sección Pero Pero soltar. Y esto funciona. Recuerda, tu nombre depende totalmente de ti. Entonces podría elegir esto porque necesitamos esto, ¿verdad? Bien. Entonces eso no va a detallar realmente el paso que necesitamos. Bien, este paso probablemente necesite ahora mismo, lo que necesitamos ahora mismo es obtener el código, ¿verdad? Y cuando queremos obtener el código, en realidad podríamos hacer algo como esto, ¿verdad? Hacemos un git checkout, entonces probablemente queramos tirar o hacemos un clon de Git, luego ponemos esta URL completa para obtener realmente lo que necesitamos. Pero esto es que básicamente ahora estamos tratando de conseguir más allá de la seguridad, tratar de ver si este entrenamiento es evitar esta complejidad, es por eso que Git realmente creó cosas llamadas ya estamos creadas acciones para ti, acciones que ya para hacer este trabajo. Entonces básicamente son exactamente lo mismo que esto. Básicamente exactamente lo mismo que esto. Sin embargo, se han compilado donde solo puedes usarlo sobre la marcha para realizar una acción. Y uno de ellos es el código Get. Entonces, si tuvieras que explorar, si miras esto detenidamente, es como Git action se llama Git action marketplace. Entonces Git action marketplace, tienes todo, algunas de las principales cosas que necesitas. Tomemos, por ejemplo, que desea interactuar con AWS. Seguro que aquí encuentras cosas relacionadas con EWS. Si miras esto detenidamente, ya ves, este es un administrador secreto para AWS. Si quieres configurar alguna CLI, si realmente bajas un poco Hacen muchas paradas, muchas paradas. Estoy seguro de que si también tienes algo en AshiCop eso es Ash Cov volt Ash Cov volte Taza cenicienta, mira. Acabo de motear otra vez. El hashi, Hashikup Entonces ya ves, tenemos cosas en HashikUp sobre cómo interactuar con Tashi cup vs fuertemente Entonces esto realmente funciona. Interactúan todas las cosas, ¿verdad? Entonces básicamente, esa es la idea. Entonces lo que estamos viendo hoy, mientras buscaba alrededor, descubrí que también tenemos la caja. Entonces, cuando veas esta garrapata azul, simplemente significa que esto ha sido verificado. Eso no dice que los otros no estén verificados. Bueno, simplemente significa que realmente no han sido más fáciles de verificar. Mi para entrar a revisar el código para ver si es exactamente lo que necesitas y si no expone ninguna forma de tu detalle. Para ello, vamos a estar necesitando esto. Ahora, me voy a apegar a las cosas que tenemos tengo esta garrapata azul excepto tal vez explorando algunas otras cosas que podríamos ver más tarde. Vamos a entrar aquí, ¿verdad? ¿Qué hace esto? Dice, Esta acción echa un vistazo a tu depositario bajo el espacio de trabajo de Gitub Ahora, si estás familiarizado con Jenkins, Jenkins también tiene una característica llamada espacio de trabajo donde es un entorno vectual donde ejecuta tu código, administra todo tu artefacto Lo mismo con esto. Ahora bien, qué pasa si no te interesa que quieras tirar también clonas otro otro check out otro repositorio dentro que sea diferente al que estás trabajando actualmente. Por eso tienes este otro parámetro que es el w. te proporciona un repositorio. Una vez que proporcione, debe proporcionar el positre para check out en check into Ahora, a veces podrías estar necesitando el token Git para acceder a algún repositorio. Por eso también necesitas esto. Es un token ya disponible para ti. A veces necesito la clave SSH, la clave SSH. Yo personalmente uso claves SSH ambos trabajos, clave H para conectarme a todos mis detalles de Github ¿Cómo es el uso? Muy sencillo. Vamos a bajar. Un simple como esto. Sólo cogerlo. Solo usar esto solo es suficiente para nosotros. No necesitamos nada extra. Esto no significa inventarlo. Simplemente puedes revisar a través de lo que necesites. Voy a entrar aquí. Todo bien. ¿Recuerdas que la palabra clave es qué? Usos. No quiero decir este manual Mark. Usos, ¿verdad? Y cuando uso la palabra usa, entonces solo necesito seguir exactamente lo mismo que ellos hicieron. Que es checkout. Checkout luego pregunta V cuatro. Esto es básicamente una necesidad ligera, ¿verdad? Esto básicamente ligero. Y esto establece. Qué significa este tipo quejándose para conectarse a tu git Esto básicamente l, así que no creo que necesite un extra De hecho nos enteramos y bacalao. Ahora, recuerda un diagrama, sacamos el código. Ahora queremos configurar un entorno virtual, queremos configurar el Mv configuramos nuestro Java Mv en y dependencias. Ahora, alguien ya se adelantó para hacer también todo esto por nosotros. No tenemos que preocuparnos por todo esto lo que nos lleva a esta acción acción personalizada, que es la configuración Java GDK Lo genial de esta configuración Java JDK, cuando me enteré es esto, si bajas, mira la especificación En realidad funciona para ambos. Está dirigido hacia el grado dos y también dirigido a Maven, que simplemente hace que todo sea increíble para nosotros. Es título hacia Dios y hacia Maven. Entonces te aconseja que realmente uses el checkout primero que nada, que es uno que acabamos de usar Entonces al mismo tiempo, entonces te metes y usas este en particular. Esto es exactamente lo que estamos usando. Realmente no lo hago de todos modos, no tengo ningún problema con la distribución de mí. Yo solo personalmente prefiero usar Coreto Amazon Coreto. Seguro que lo conoces. Tenemos varias distribuciones. Si subimos, tienes los que podrías usar. Tienes Tamarin Zurupt adopta entonces yo prefiero Coreto, usa el que creas que es mejor para ti Entonces en cuanto a la versión, la versión también afirma que podrías usar 811-16-7201 Puedes ver cual es la versión Java aquí. Solo entremos y arreglemos eso. Vamos a establecer eso. Lo que yo haría ir aquí. Voy a llamar a esta configuración configuración JDK, 21 Recuerda que usamos 21 para nuestro proyecto entonces estamos usando la acción. La palabra clave es acciones, no acción. Acciones. Acciones, luego configurar. Java, en realidad no necesito meter este. No necesito simplemente entrar y copiarlo exactamente porque como tus lecciones. Entonces solo copia todo esto. Sí. Evita errores. Yo sólo vengo aquí y eso lo fija. Entonces, ¿cuáles son los otros detalles que necesito? Entonces, ¿cuáles son los otros detalles que necesito? Entonces, si revisas correctamente, recuerda, tienes que indicar la versión que usas. Ahí es donde viene la palabra clave with. Te dije que la palabra clave with es cuando quieres establecer parámetros adicionales, ¿verdad? Entonces estoy usando una distribución. Verás, hay una distribución. Y la distribución que estamos usando es Coret. No tienes que recordar que no tienes que meter esto. Sólo puedes volver a entrar yo solo lo escojo. Estoy interesado en Koreto. Yo sólo vuelvo a Coretto. Sí, solo vuelve a Coretto. Entonces versión Java, ¿ves? Ya está disponible aquí. Por eso me encanta usar los plugins que solo me ayudan con todo esto. Entonces estoy usando 21. Entonces quiero algo llamado cache. Este cache, quiero que sea maven. Vamos a averiguarlo. Veamos exactamente qué hace eso. Bien. Entonces puedes ver, dices esta configuración de acciones setup Java action proporciona las siguientes funcionalidades y ejecutas, ¿ves? Hay una dependencia del almacenamiento en caché manejada por Apache Mavin que es una de las razones por las que me encanta esto, Bajemos a esto. Verá que este caché dice, el almacenamiento en caché de configuración rápida para la dependencia se administra a través de uno de los administradores de paquetes predefinidos Puede ser uno de Maven, gradual y SVT. Esto ya hará mucho trabajo. Entonces, lo que también construimos una vez y realmente guarda nuestro caso, cuando volvemos a ejecutar el mismo trabajo, hay una clave que se asigna automáticamente. No tenemos que preocuparnos por todos esos detalles de integridad. Eso se maneja. No importa lo que hagamos es cache. Tenemos que almacenar en caché manualmente, darle la clave, luego recuperar la clave. Si es esa clave, usamos una palabra clave. Si es esa clave, entonces no debería almacenar en caché. Si no es clave, se debe construir. Pero esto es solo nos prepara esto. Una de las cosas chulas de esto, si tuvieras que bajar un poco, esto es si revisas esto. También te da algunos detalles extra. Veamos la palabra clave que se está utilizando. Lo que me gusta hacer es simplemente buscar dentro de este centro y buscar la palabra clave catch. Entonces eso nos da algo bueno. Ahora mira esto. Dice acción Buting para caché restaurando dependencia. ¿Ves? Restauración de cacher Utiliza dos kits de caché debajo del capó. Para caché en dependencia, bog requiere menos configuración y ajustes Esto es exactamente lo que estoy buscando. Quería mostrarles que hay otra acción más que se llama debajo. Sin embargo, es una buena manera de ver realmente cómo funciona esto. Tal esto lo llaman caché. Caché. Entonces existe esta función de caché, ¿verdad? Eso también está disponible que podrías usar manualmente, ¿verdad? Pero no tienes que preocuparte por la llave. Ahí está esta clave que tienes que usar para la caché, entonces tienes que restaurar hay bastante configuración. Así que siempre te recomendaría ir a buscar las cosas clave que necesitas tú mismo. No tienes que hacer estas cosas manualmente, verdad? Busca la acción. El único momento si la acción no está disponible, sabes que tienes que hacer las cosas paso a paso. Si tienes una historia de búsqueda no puedes encontrar ninguna acción, es muy simple. Solo busca lo más cercano que quieras hacer que probablemente haga una o dos cosas que quieras hacer, uno o dos pasos que quieras llevar a cabo, luego define tu paso uno tras otro que simplemente te ahorra mucho estrés. Lo que voy a hacer, volvamos en el siguiente video. Veamos esto y sigamos paso a paso el archivo para ver cómo funciona esto realmente. Los veré chicos en el siguiente video. 9. Elimina el proceso de composición en Spring Boot Docker y omite la prueba: Oigan, todos. Z aquí. Todo bien. Así que en realidad hemos podido detallar g acciones. Trabajamos en esto, realmente podemos cambiar el nombre, cambiamos esta cosa, luego configuramos esta sesión. No hemos terminado con esto, sin embargo, veamos qué va a pasar con esto. Quiero que podamos confirmar que esto realmente está funcionando como debería y no tenemos ningún error proceder. Esto nos dará una buena idea de lo que se ha hecho y lo que se ha generado, verdad? Vamos a probarlo. Ese es el objetivo de este video. He seguido adelante para crear un problema. Crear un problema. Entonces, vamos a comprometernos en contra de este tema. Entonces nos comprometemos. Bien, entonces voy a empujar esto, entonces veremos nuestra acción pateando. Todo bien. Entonces volvamos a la acción. Vamos a las acciones. Bien, así que esto viene. Así que vamos a seguirlo. Recuerda, esto es lo que hemos declarado esto, todo va en paralelo tal como es, ¿verdad? Estoy más preocupado por esto pero sección para ver si las cosas realmente funcionan, así que voy a entrar. Bien, así que esto se completa. No obtuvimos ningún error. Oh, buen trabajo. Buen trabajo. Número uno, consigue el código. ¿Pudimos conseguirlo con bastante éxito? Vamos a confirmar. Por lo que revisamos correctamente. ¿Qué podemos ver aquí? Comprobamos correctamente. Entonces esto fue capaz de hacer todo lo que queríamos hacer. Entonces esto no nos da ningún error. Entonces significa que nuestro código está básicamente revisado correctamente, ¿verdad? ¿Estamos seguros? Probablemente nos gustaría iniciar sesión para estar seguros. Pero antes de eso, la mejor manera de confirmar esto realmente, vamos a comprobar vamos a comprobar la configuración JDK Así se puede ver que en realidad ejecutar esto. En realidad escogió a este tipo donde está en Java 21. Impresionante. Entonces vamos a hacer caché con Maven Impresionante. Entonces la configuración posterior, esta es la configuración posterior, esto es solo una limpieza digamos error de parte especificar parte y ningún caso No hay caso. Al parecer, no hay caso, hay Razón porque no ejecutamos ningún comando de movimiento. No ejecutó ningún comando de movimiento. Eso es algo hermoso que vamos a hacer en este video actual. Ahora nos hemos asegurado de que no haya ningún error que realmente surja. Entonces, procedamos. ¿Qué es lo siguiente que quieres hacer? Lo siguiente que quiero hacer es salida a alguna información. Vamos a sacar algo de información. Llamemos a esta salida Info. Sólo llámalo pot info, y yo sólo voy a correr. Sólo voy a ejecutar un comando LS. Eso es todo lo que voy a hacer. Voy a ejecutar un comando LS. Y si estás familiarizado, ya sabes, LS básicamente ejecutaría todo lo que necesita ser que realmente necesita salir. Así podremos ver todo en la carpeta raíz y ver si las cosas realmente se desarrollan correctamente. Entonces voy a dar un paso en un paso más. Cuanto menos tengan esto, menos construir con Maven Al parecer, estamos construyendo con Maven, ¿verdad? Entonces porque estás construyendo con Maven, esta configuración reconocerá que estamos construyendo con Maven y captará los detalles porque reconoces, estás construyendo Maven, increíble, déjame guardarlo en caché Eso va a atrapar el jalar de nuestras dependencias y los gustos ¿Cuál es el comando que vamos a hacer? Vamos a usar los comandos plain que conocemos. Eso será paquete limpio VN, luego D, botas de primavera, puntos corren perfiles de puntos. Así es como correr el resorte contra un perfil en particular. Ya nos dimos cuenta de cómo conseguir nuestro perfil, que son los puntos del jarrón. Recuerda que alguna vez lo hicimos. En realidad usamos el jarrón. Esta vez es perfil de primavera. Recuerda que conseguimos este perfil primaveral. Recuerda esto, vamos. Si revisas a este tipo, nosotros revisamos a este tipo, ve a nuestra configuración. Entonces si revisas nuestro entorno, entonces recuerda la acción, configuramos el perfil de resorte, que es acción. Ahora vamos a darle una patada a esto. Voy a hacer esto y ver exactamente qué pasó. De hecho, supongo que ya soy lo suficientemente mensajera. Hagamos otra cosa. Voy a hacer vamos a enumerar los archivos. Si esto realmente pero con éxito, debería poder evaluar una carpeta llamada LS targets. Ya sabes, así es como funciona en objetivos para Mavings a But file, es una carpeta But, perdón por G But carpeta, pero para Mavings Quiero imprimir todo dentro de esta carpeta de destino. Entonces, sigamos adelante y probemos esto. Vamos a crear un problema. Vamos a crear un problema. Voy a llamarlo voy a llamarlo ducto, solo para estar seguros de que todavía estamos en la tubería, luego construimos casarme conmigo hombre. Creo que esto es genial. Sí, está bien. Entonces, ¿puedo decir que esto es una mejora? Sí. No usé esto todo cierto, solo pensé que debería agregarlo solo mejora. Eso se puede hacer. Entonces copia esto entonces solo me comprometo en contra de esto. Después cierra. Entonces, si todo funciona a la perfección, deberíamos ver a nuestro maven en caché, Si ves que las cosas se atrapan son las cosas que funcionan correctamente. Entonces, se pone empuje. Voy a conseguir push push. Bien, así que vamos a saltar aquí. Voy a saltar, así voy a ir a mis acciones. Ir a mi gasoducto. Bien, recuerden que estamos preocupados por esto. Sí. Esta parte. Bien, así son las cosas. Las cosas están funcionando. Ahora estoy en la sección de bits. Entonces, ¿puedes ver? Se trata de dependencias de ply. Esto se puede ver. Esto es increíble. Esto es increíble. Ahora bien, esto siempre es muy grande, así que quizás no puedas correr con ella con él. Entonces, lo que suelo hacer lo acabo de ver ahora, es construir los datos, todo lo que estamos esperando, o algo está fallando. Impresionante. Algo está fallando. Ahora, ya ves que fue capaz de jalar para tirar. Y esto de verdad corre ¿ves? Un perfil es en realidad lo conseguí correctamente. No, pero algo anda mal. F ahora se llama la forma en que el Blanco estaba tratando entonces de tirar de esto. Le falta algo. Le falta algo, no puede encontrar ¿qué es? Un repositorio de respuesta punto de inicio de sesión, denegado. Esto está bien en cierto modo. ver ¿qué más nos falta? ¿Qué más nos falta? Veamos este informe de evaluación. Solo queremos ver cuál es el problema, qué podríamos tener, y veamos esto. Recuerda que estamos ejecutando entorno virtual ahora hay que ser muy detallado al mirar los registros para ver qué podría haber salido mal ¿Qué podría haber salido mal? Yo lo estoy viendo. Bien. Entonces tenemos inicio de sesión de Docker No me interesa iniciar sesión en Docker. ¿Bien? Por qué no existe Repositorio. Ver, el repositorio no existe o puede requerir el inicio de sesión de Docker, ¿de acuerdo? Ahora, vamos a comprobar que somos archivo. Comprobemos Comprobemos este archivo. Comprobemos esto. Vamos a ver esto. Si nos fijamos en nuestro archivo de redacción, este es nuestro problema. ¿Ustedes están al tanto? Este es nuestro tema. Ahora, ejecutando esto, aquí es donde entra en juego el tema. Ya seguimos adelante para definir esto y si eres lo suficientemente particular, si miras lo suficientemente en particular, mira esto. Tenemos las botas de primavera docker componen. Ahora bien, esta primavera botas Docker componer está tratando de evaluar un ambiente Docker, que no brindamos No sé si eso tiene sentido. Estamos tratando de ejecutar entorno decker, que no brindamos Al parecer, esto se romperá. Entiendes que esto se romperá. ¿Cuál es la manera ideal para que realmente nos mudemos? La forma ideal si pretendemos, recuerden, estamos tratando de construir para la producción ahora. El compost Docker ya no se debe usar. El compost de Docker para trampolín no se debe usar En consecuencia, tenemos que comenzar esto. Cuando encomiamos esto, ya no va a utilizar esta lima de compost Tratando de ver cómo podemos conectar automáticamente las cosas para nosotros. Eso es lo que voy a tratar de lograr. Vamos a cerrar esto. Vamos a cerrar esto. Ese es el primer paso. que ustedes realmente tengan cuidado con esto. Voy a explicar esto de nuevo. En este momento está usando nuestro muelle porque agregaste enfermedad automáticamente seguimos usando a este tipo. Cuando tienes un archivo de componer, teniendo todo esto, automáticamente estará buscando moduli it service, tratando de averiguar estos detalles, tratando de obtener un contenedor que deseche chicos, que no tenemos en ese entorno virtual Esta ya no es mi caja local. Hemos seguido adelante para desactivar esto. Ahora, próxima parada, también se intentará. Recuerda, en realidad usamos la componer Docker. Si recuerdas lo que hicimos aquí, dijimos que no debería saltarse la prueba de composición de Docker. Va a estar tratando de ejecutar la prueba porque si miras el comando, en realidad los colocamos. Si nos fijamos en este comando, este comando no omite el paso. No se salta la prueba no se salta la prueba. Lo que vamos a hacer, vamos a hacer paquete de mudanza limpia, luego rociar las pruebas de salto. Después guión D este perfil. Entonces, lo que esto hará es saltarse esta prueba porque esto no es un objetivo. Queremos construir la imagen. Quiere hacer pero esta imagen, pero esto seguirá fallando. Estoy seguro de que te das cuenta de que esto seguirá fallando porque ni siquiera tenemos un ambiente post gas dentro esta parte de Docker que es lo que vamos a estar explorando en el próximo video Pero antes de eso, vamos a empujar esto para decir saltar la prueba. Omitir prueba. Lo llamaremos tubería, eliminaremos Docker componer, resorte Docker componer y saltar prueba eliminaremos Docker componer, resorte Docker componer y saltar prueba. Y eso vamos a estar explorando. Así que entremos aquí. Por lo que hago avanzar esto. Pero nuestro comazoe no conseguimos ningún fracaso que están teniendo fallas en la vista principal ahora mismo Entonces voy a entrar aquí, voy a crear un número. Voy a llamar a este número. Nos movemos la primavera, las botas Docker componen, y saltamos pruebas Entonces esto será ducto. Tubería. Ahora, entonces déjame hacer una pregunta. ¿Por qué nos saltamos la prueba? Pensé que ya tenemos todo ya detallado. ¿Por qué estamos decidiendo saltarnos la prueba aquí ahora mismo? Entonces te lo explicaré en un momento, ¿verdad? Te lo explicaré en un rato. Ahora, me estoy saltando la prueba porque si fijamos en la estructura de nuestro código de cómo en realidad estructuramos este código, estamos esperando esto aquí, este Docker componer Si pretendemos eliminar esto, si pretendemos sacar esto, necesitamos pasar en esta variable de entorno. Tenemos que pasar esto y debemos conectarnos. Esa es la palabra que debemos conectar a una base de datos de pose grass definida dentro del contenedor de acciones de Git. Entonces saltemos la prueba. Volvamos, vendré y arreglaré eso en el siguiente video. Hagámoslo en realidad. Lo que voy a hacer, voy a llamar a esta prueba de salto, prueba de tubería saltar prueba. Entonces voy a copiar esto. Entonces lo estoy tomando paso a paso, para que puedas tener una buena idea de lo que estás haciendo, se compromete, luego toca esto. Después cierra. Bien, así que vamos a empujar esto. Entonces veamos qué va a pasar. Todo bien. Todavía queremos esto. Esto básicamente fallará, ¿verdad? Pero hemos podido acotar el tema para que vaya dando paso a paso, para que podamos tener una buena idea sobre qué es lo que sigue a hacer y cómo hacer que las cosas procedan realmente. Entonces, procedamos. Por lo que ahora estamos en la sección pero. Bien. Esto suele llevar mucho tiempo, de verdad. Así que vamos a soportarlo. Porque esto no tuvo éxito. Entonces al parecer no atrapará nada. Aparte es exitoso, ¿verdad? Bien. Ahora, miren a estos tipos. ¿Puedes ver? Esto ha funcionado con éxito y puedo ver el frasco. Esto es lo que estaba tratando de sacar, ¿verdad? Así que somos capaces de hacer esto con éxito. Al hacer esto, esto ahora es exitoso. Esto es ahora exitoso. Eso es exactamente lo que estoy tratando de sacar a la luz. Esto es ahora exitoso. Esto no tendrá ningún problema. No se conecta a ninguna base de datos. Solo trato de generar un archivo jar y consigue lo que necesito. Se pone lo que necesito, si lo miras, estos son todos los archivos donde enumeramos todos los archivos y generamos este tamaño de auto. Generé un auto de un tamaño de auto nuevo, y fue capaz de guardar esta llave. Esta es la clave a utilizar. Cuando esto está ejecutando el trabajo, es lo que va a usar. Dicho esto, ¿por qué no permitimos que se ejecute la prueba? Permitamos que se ejecute la prueba para permitir que se ejecute la prueba, necesitamos un servicio post gas realmente funcionando, que no está disponible en este momento. No lo tenemos disponible. Porque si revisas nuestra acción estamos pasando en fuente de datos, todos estos detalles postgaar y En realidad no está conectado con Postga veamos eso. El siguiente video. 10. Contenedores de servicio de tuberías: Oigan, chicos, gracias por volver conmigo. Todo bien. Así que hemos podido hacer algunos detalles. Hemos sido capaces de construir realmente el archivo JAR. Ahora queremos explorar en un escenario ideal, no queremos saltarnos la prueba porque la prueba es una parte esencial de la aplicación, por lo que no queremos saltarnos esto. Entonces, ¿cómo lo hacemos? Entonces lo primero que recomiendo es que tenemos que entrar ahora, no vamos a saltarnos la prueba, queremos cambiar el comando para permitir realmente la prueba. Pero en esta ocasión, iré a la carpeta de acciones. Copio todo esto y lo uso directamente dentro de nuestra prueba. A continuación, copio los datos sur. Vamos a copiar la fuente de datos. Vamos a copiar los datos sas. De la misma manera, creo que voy a necesitar esto. Vamos a copiar las actualizaciones. Bien. Entonces, vamos a traer esto. Todo bien. Todo bien. Así que también quiero que ustedes recuerden algo. Recuerda, cargamos esto como startup, ¿verdad? Y si revisamos nuestra prueba, tú revisas nuestra prueba, ¿es la prueba de inventario? ¿Ya hiciste mucho? A ver. Entonces hay una parte que en realidad estamos cargando con cierto detalle. Buscando estamos buscando una lista de este tipo porque sabemos que esto ya existe en la base de datos, y en realidad agregando en contra de ella. Esto fallará si no atendemos a westrapping los datos, estos datos, inicializándolos Porque estamos manejando a este tipo ahí dentro, lo que voy a hacer es elegir esto. Tenemos que escoger todo esto. Todo esto tendrá que irse. Inicializar nuestros datos también dentro de este tipo Inicializarlo. Para inicializarlo para hacer esto siempre. Así que haz esto siempre. Entonces esto debería correr. Estamos diciendo, Bien, ¿sabes qué? Corre cada vez. Una vez que conecte la base de datos, ejecute cada vez y todo. Seguro que esperamos que estés usando en un lugar más vamos a terminar con duplicados. Pero de todos modos, aún vale la pena intentarlo. Entonces veamos esto. Entonces ahora hemos podido hacer esto, bien, para poder agregar este detalle luego volvería a este archivo, luego eliminaría luego volvería a este archivo, luego la prueba de omisión ya no salteando prueba. Así que ya no te saltas la prueba. La prueba, recuerda nuestras pruebas, no tenemos ningún perfil, así que nuestra prueba simplemente se ejecutará en este default, ¿verdad? Ahora bien, ¿qué otras cosas nos vamos a perder? Un poco falta algo muy vital porque recuerden, estamos usando Doka usando ¿cuál es el nombre ahora Estás usando un post guest. Tenemos que ser capaces de traer esto también. Este tipo necesita estar presente dentro de nuestro contenedor de lo contrario va a fallar. Recuerda que estamos usando las poses, incluso en nuestra prueba para conectarnos. Entonces ahí está lo mismo tenemos esta compostura. También contamos con una característica de servicios. Hay una función de servicios dentro de Git Actions. ¿Eso es increíble? ¿Tiene una función de servicios, que existiría por puesto? Existe para cada puesto de trabajo. Entonces quiero que funcione dentro de este trabajo. Coloca esto aquí. Entonces este tipo también estaría disponible dentro de nuestro GitHub y dentro de las acciones de Git, y esto en realidad solo copiaré directamente. Entonces ahora veamos cuáles son las cosas que no están permitidas. Dice que el nombre del contenedor no está permitido, prohibido así que no queremos esto. Al parecer, ni siquiera estamos usando esto. ¿Qué dice aquí? El ambiente no está permitido, Scheman no está permitido, pero necesitamos agregar algunos entornos. ¿Bien? Qué bien. Ya que sé que necesitamos necesitamos este Post chicos DB para estar disponible. Necesitamos este post chicos DB. Vayamos a buscar dentro de la capa de servicios para ver cómo podemos cablear en el entorno que realmente requeriría. Al parecer, no usamos los jarrones, los vastos usuarios que estandares Pero entremos para ver cómo funciona esto en realidad. Sí, con esto, entonces explora los servicios. Todo bien. Entonces echemos un vistazo a los servicios. Entonces estos son contenedores de servicio. Ahora, mira la definición. Puede usar contenedores de servicios para conectarse a bases de datos, servicios web, cachés de memoria y otros a su flujo de trabajo. Ahora, vea esta parte. Los contenedores de servicio son contenedores Docker que brindan una manera simple y potable para que pueda alojar servicios que podrían necesitar probar la operación en su flujo Entonces esto es básicamente lo que necesitamos. Vamos a saltar a cómo funciona. Ahora bien, esta es una nota muy importante que quiero que ustedes tengan en mente Si estás usando ito hosted runner, que estás usando, debes usar Bnt Si estás usando ejecutores autoalojados, debes usar una máquina Linux, y la puerta vino debe estar instalada. Realmente necesitas tener esto en mente, ¿verdad? Básicamente hay que tener esto en mente, porque si no lo tienes en cuenta, esto no va a funcionar. I I hay un corredor auto hospedado, debes encargarte de esto. Si estás usando esto, dice, docker podría estar instalado Der podría ser automáticamente Docker Engine automáticamente está disponible para nosotros usando ejecutores alojados en Git ¿Cómo lo haces? Esta es una muestra. Verás, elimino el nombre del contenedor porque aquí podemos decir un nombre, podemos decir el nombre aquí. Si vuelves, básicamente puedes venir aquí. Pon esto lado a lado. El lado a lado. ¿Bien? Entonces, si miras esto, dice que luego puedes llamar a los servicios. Para ese servicio, puedes venir aquí, luego darle un nombre, el nombre del trote que voy a correr Entonces llamaré a este contenedor. Entonces el contenedor puede tener un nombre. ¿Cuál era el nombre aquí? Creo que se llama Boosre llamar a esto Entonces tenemos esto, y si lo miras correctamente, afortunadamente tenemos un contenedor de servicio postga, lo cual es bueno, que es solo una forma predefinida conectar los postgas como con otras Vamos aquí. Creo que esto solo va a decir todo lo que necesitamos. La imagen que necesitamos, necesito la imagen 16 o dos. Eso es con lo que probamos. Ahora se supone que esto es ENV. Es una fuente de comandos usando ENV. Aquí tenemos que usar el nombre sin comillas, hagámoslo. Voy a colocar el ecualizador con una columna, ¿no? Esto también saca esto saca estos. Creo que puedo hacer esto con g, puedo hacer esto. Saca estos, luego cambia esto a Cambios a columna. Cambios a la columna. Sí, entonces quita esto, y esto. Bien. Bien, esto no está correctamente alineado. Entonces hay alineaciones alineadas. Entonces ves esto ahora recuerda, no tenemos que tener código porque ya sabes exactamente cómo buscarlo Entonces solo haz esto. Como eso es un DB, ¿verdad? Eso es un DB. Eso debería ser modelarlo. Módulo su subrayado DB underscore name. Ya tienen esto. Para el nombre de usuario y contraseña, lo mismo. No hace falta que ya definas esto. Oh, lo siento, esto es DB ahora, esta es la contraseña. Este es el usuario. Este es el usuario de poscas. ¿Qué colocas aquí? Vamos a revisar. Yo no mezclaré las cosas. Todo bien. Utilizamos lo que hacemos como nuestro usuario. Volvamos a nuestro archivo de redacción, archivo de redacción. Componer archivos también modula lo mismo. Nombre de usuario y contraseña, lo mismo. Volveremos aquí para desplegar vuelve aquí. Lo mismo. Como hablar el nombre. ¿Cuál es el nombre? No es Spit como contraseñas el nombre, luego contraseña VSA. Esto es lo que usamos. Ahora, recuerden, no guardamos esta asignación. No guardamos este entorno de asignación que recibimos, guardamos un secreto ¿cómo evalúan los secretos? ¿Cómo se evalúan los secretos? Evalúa secretos, usas la palabra clave secrets. Así es como evalúas los secretos. Los secretos se evalúan con la palabra clave secreta lo siento, no esto. Secretos. Yo evalué con esto. Creo que esto básicamente nos da una idea de qué hacer. Ahora, puedes ver que estos post en realidad no requieren que usemos a este tipo. Entonces colocamos esto y, en realidad es que podemos seguir adelante y probar esto. Vamos a probar esto para ver si poco a poco vamos adelante para eliminar esto para eliminar la prueba de salto. Nosotros hemos venido aquí para agregar a este tipo. Entonces entramos aquí para agregar el contenedor de servicio. He explicado cómo los contenedores de servicio. Voy a compartir el enlace a los servicios. Entonces queremos ejecutar esto. Esto no va a codificar duro. Acabamos de probar de nuevo esto y solo podemos ver, ¿funciona esto? ¿Funciona? Vamos. Vamos a averiguarlo. Simplemente entramos y ejecutamos esto. Yo solo crearé procedimiento Normalmente creo un problema. Voy a crear un número. Llamemos a la tubería de emisión usando contenedores de servicio. Todo bien. Entonces hagámoslo. Entonces solo guardaré esto al lado de esto. Commits TAM, cierra Luego vamos a empujar. Y veríamos que esto realmente entra aquí, cierra esto, y esto va a entrar. Bien, así que vamos a ampliar esto y averigüemos qué pasa. Bien. Esto se está ejecutando. Nos interesa esta sección, ¿recuerdas? Sigue vigilando. Creo que podemos refrescar, no lo ves moviéndose solo refrescar. Podemos refrescar iniciado, luego podemos saltar para ver qué está pasando. Algo falló Algo archivado. Vamos a entrar a ver qué pasó con un construido con M. Dice poseer realmente lleno, envidia y no encontrado. W. Pero nosotros solo VN trabaja para nosotros. ¿Qué ha pasado? Si cambiamos algo, en realidad lo averiguarías, V no se encuentran. No creo que deban nuestros contenedores de servicio, pero envidia NV no se encuentran, tenemos que volver adentro, o veamos cómo estructuramos a este tipo. Ampliemos esto Bien. Entonces esto tenemos un servicio de contenedores que está disponible, lo cual es un progreso, y esto realmente nos dará los detalles que necesitamos. Entonces estamos jalando a este tipo. Entonces vamos. ¿Acaso tiró? ¿Sacaste la imagen? A ver. Una serie. Así que detente y quita la poquest Eso significa que tenemos un contenedor postgast, lo cual es bueno. Contenedores bien. Esto está bien. Esto está bien. A ver. sólo quiero confirmarlo. Entonces, ¿a dónde saltó Maven Tuvimos a Maven corriendo antes. Entonces algo definitivamente había sucedido dentro del trabajo. Entonces volvamos a ver qué pudo haber pasado. Entonces, ¿cambiaste algo aquí? VN es lo que corremos. Entonces el paquete, y esto fue consistente. Usamos la palabra clave VN establecida en Maven, entonces ¿qué más harías? Sí, limpiamos el paquete, enumeramos archivos. Entonces, idealmente, no deberíamos tener ningún problema con esto. No debería tener ningún problema con esto, ¿verdad? Entonces, no debería ser problema con esto. Entonces volvamos a las partes. ¿Hay alguna manera de volver a desencadenar? Volvamos a ejecutar este trabajo Vamos a correr Quiero volver a ejecutar este trabajo. Ejecutamos una C que podría elegir este archivo este flujo de trabajo, esta imagen de empuje B, Bud pushimage para di player Ese es el nombre. ¿ Puedo huir de aquí? Ahora, tengo que entrar aquí. Entonces corremos ejecutamos todos los trabajos de campo. Vamos a dirigir a este tipo, esta sección de belleza. Veamos qué pasa. Probablemente vamos a iniciar sesión. A ver, tal vez hay algo que nos falta. Ejecutamos esto de nuevo y veamos cómo se desarrolla. Mira la lente de video donde hacemos esto, este 14 ya podría tener que echarle un vistazo a esto. Entonces veamos cómo se desarrolla entrar en el código. Bien. Bien, entonces déjame hacer una pausa en esto y volver, Sarus y obtener el video innecesariamente Todo bien. Entonces esto se completa y todavía está lleno. Así que volvamos en el siguiente video. Dado que no está encontrando Mv en, probablemente necesite agregar un Mv en acción para configurar una configuración móvil. Hagámoslo en el siguiente video. 11. Corrección de errores en Pipeline Maven: Hola a todos. Z aquí. Bien, en realidad no logramos hacer esto con éxito el último video y debido a que no estábamos teniendo esta mudanza o encontrado. Lo que tuve que hacer es ir a revisar tuve que ir y verificar los servicios preinstalados. Entonces, una vez que el contenedor esté arriba, acción Git Hub Git te promete que habrá algún cierto software instalado en el entorno Ubuntu. Quiero mostrarles cómo averiguarlo realmente. Entonces, si en realidad revisas esto Bien, veamos esto. Pensé que lo había levantado. Bien. Entonces tenemos la lista de corredores anfitriones. Sí. Bien. Esto es. Voy a soltar el enlace. Voy a soltar este enlace. Me aseguro de que realmente lo guarden y lo pongan a disposición, el enlace estos enlaces. Ahora bien, si nos fijamos en esto, estas son las imágenes disponibles. Ahora estamos usando Ubon a los ulteriores. Boon to latest diferiría a 22 oh cuatro y decir que esto son software incluido. Vamos a hacer clic en esto para ir a ver el software incluido. Bajemos. Entonces puedes ver fácilmente para que no tengas que ir instalando el software que ya está disponible, ¿verdad? Ahora, vemos que esta es la imagen por lo que el software el idioma que están disponibles por defecto. Aquí no tenemos Java. Por eso en realidad teníamos un Java. Entonces manejo de paquetes, tenemos PP PPPx vamos a bajar. Entonces si revisas las herramientas que están disponibles. Mira la gestión del proyecto. Tenemos Maving tres.88. Se supone que Maving tres puntos ocho está disponible. Sin embargo, intentamos que vimos que no estamos obteniendo esa característica. Yo me dije que algo anda mal o algo realmente lo alteró. Cuando comprobamos esto, no creo que hayamos hecho nada fuera de tono al traer esto aquí porque configuramos el entorno Java. Esto habría funcionado básicamente, pero por alguna razón, en realidad falló. Lo que voy a hacer, enumerar esto, hagamos también esto. También podemos agregar bajo comando. Hagamos una versión VN dash. Veamos esto realmente se instala. En Ubuntu, la mayoría de las veces tenemos esta parte. El camino en realidad se llama slash OPT, Apache. Hagamos un LS en esto. Hagamos esto. Hagamos una L S en esto en este camino. Veamos si esta ruta está disponible y si está disponible, veamos qué hay disponible dentro de este directorio. Vas a ejecutar esto ahora mismo. Voy a ejecutar esto para ver. Voy a decir imprimiendo versión móvil, llamada la versión Mv de impresión. Ellos solo vienen aquí temas. Una vez que no lo encontremos solo sigue adelante e incluye una acción, una acción personalizada que simplemente configura Mving directamente. Eso es lo que vamos a hacer. Todo bien. Entremos aquí, solo digamos tubería. Tubería. Entonces digamos imprimir. Detalles de mudanza. Vamos a guardar esto. Vamos a copiar esto. Vamos al código a menos que consigamos commits. Entonces vamos a cerrar esto. Creo que no lo copié todo. Eso es 27, 27. Hagamos esto. Vamos a empujar. Vamos a pasar. Volvamos aquí, revisa nuestras acciones. Al parecer, esto destacó en esta sección pero laboral. Así que vamos a ejecutar esto. Vamos a revisar. Bien, continuer están inicializando. Para que no tengamos que tener miedo. Si lo miras contenedores, no podemos pegarnos críticamente. Entonces esto en realidad es conseguir que lo mires, post contenedor de gas. Entonces estamos seguros que incluso está tirando de poste de gas sistein o dos. Por lo que estamos seguros de que nuestro post gas disponible. Entonces esta es realmente buena. Esto es una buena cosa. Esto es bueno para nosotros, ¿verdad? Entonces sabemos que post gas instalado con éxito. Permítanme cerrar estos continuadores inicializados. Código G. Creo que corremos obtener código. Este es el campo para. A ver. Esto es configuración. No lo pudimos encontrar. Estamos tratando de imprimir esto y ¿qué averiguaste? A ver. Dice versión móvil, Ls versión anving. Esto salió, no tienes nada, ¿ verdad? Uh entonces ENV Al parecer, no estamos viendo lo que necesitamos. Esto es CynDipa porque esta película esta es la versión que debería haber Esta parte que debería tener pero no es encontrar a VN no encontrada. No se encontró VN. No he intentado imprimir esto probablemente debería haber impreso esto antes de que la otra parte debería haber impreso esto antes. Comprobemos eso. Pero en lugar de hacer eso no tanto tiempo consigue el video ninguno para eso. Solo vayamos al marketplace y busquemos vamos al marketplace. Vayamos al mercado aquí. Vamos a escoger esto. Vamos a usar este plugin de movimiento, este movimiento tenemos esta acción de movimiento, acción personalizada. Solo traeremos esto y vamos a movernos. Lo que voy a hacer, voy a poner esto inmediatamente después de esto. Vamos a hacer esto. Entonces vamos a ponernos esto con nosotros. Si no estás seguro, también podríamos instalar manualmente. Si revisas, podríamos instalar manualmente. Si haces un patcher en movimiento, un parche de maven. Entonces haces Ubuntu. Entonces, para instalar Pache Mav en Ubuntu, ¿cómo instalar Pat? Entonces tienes varios enlaces para mostrarte realmente cómo instalar realmente un Pach en un Binto Entonces este es el paso uno. Tenemos una variable de entorno Java. Esto ya está configurado para nosotros. Tenemos esto disponible. Y así para ahora instalar, en realidad podríamos conseguir esto. Ya ves, esto está disponible. Podrías simplemente elegir esto entonces ves que hay demasiados pasos, hay demasiados pasos. Decidí usar la acción personalizada, pero sin embargo, en realidad podrías elegir esto y usarlo directamente, ¿verdad? Solo necesitas mostrarnos para que podamos ver esto funciona. Entonces probemos la primera opción. Si todavía tienes problemas, bien, entonces tendremos que hacerlo de bajo nivel nosotros mismos Hemos movido este nivel bajo, agregarlo al pase, y conseguimos que las cosas se hagan nosotros mismos Pensé que en realidad mencionó esto. Volvamos al código. Ahora que tenemos este guardado así que hacemos git commits. I CM entonces voy a decir añadido acción de movimiento personalizada. Llama a esto. Se agregó una acción de movimiento móvil personalizada. Para que puedas conseguir que esto se cierre. Todo bien. Bien. Entonces, veamos. Esto realmente hace el trabajo. Bien, así que vayamos a las acciones. Entonces esto es Building. Voy a relajarme refrescar esto. Así que entremos. Todo bien. Entonces esto es Building. Refresquemos esto una vez más. Entonces esto es Building. Sólo quiero ver el movimiento de la barra. ¿Correcto? S inicializar Bien, así comenzó. Segundo salto en. Entonces, configurar esto ha ido directamente. Tan más cercano arriba Mvn configurando Maving. Entonces estás tratando de tenderle una trampa a Maven. Sí. Todo bien. Entonces veamos porque esto me da detalle ahora. Todo bien. Entonces ya ves que esto en realidad se imprimió con éxito. Maving se imprimió esta versión VN, y el archivo OPT nos dio todos estos detalles Bien. Así podemos ver que Mavin se está ejecutando ahora, así que hemos podido resolver ese problema Así que bajemos. Esperemos esto. Creo que ves obteniendo errores aquí, vamos a permitir que termine, entonces realmente podemos depurar para ver cuál es el error ahora. Este trabajo falló vamos a comprobarlo. L solo chequea. Básicamente, algunos de los problemas que encuentras en tu pipeline. Algunas cosas que estaban funcionando antes de que dejáramos de funcionar, quieres depurar para ver qué pasó con el tiempo llegas a ver cómo resolver realmente esto bien. Entonces una vez que bajes, entonces esta es la prueba. Ahora, sí, genial, genial. Esta es la prueba. Entonces, ¿cuál es el problema con la prueba? Entonces dice que hay un puntero no, su SQL, ¿verdad? Se trata de, oh, no está conectado. Verás, no está conectado a la base de datos. Esto es lo que está aquí el tema. No es conectar la base de datos, ¿de acuerdo? Entonces al parecer, este es el tema. No está conectado a la base de datos. Sí, no está conectando la base de datos. Entonces mira esto de nuevo. Sí, comenzando, ves que el acarreo de la piscina arrancando no pudo obtener conexión, al parecer. La prueba no está conectando. Eso es básicamente lo que es el tema. Hemos podido llegar a esa etapa. Muy bien chicos. Los veré chicos en el siguiente video. Nos movemos paso más rápido de un tema en movimiento. Ahora en realidad nos quedamos con la base de datos que no se conecta y eso arreglará en el siguiente video. Nos vemos chicos. 12. Pipeline explica los cambios de compilación: Hola a todos. Z aquí, derecha. En el último video, realmente la acción personalizada y usando eso realmente usamos la acción personalizada y aplicando la acción personalizada usando esta parte en particular aquí. Así que estamos en condiciones de introducir esto. Entonces de lo que me di cuenta es que algunas de las características realmente prometidas dentro del corredor de Ubuntu básicamente no funcionaban como debería, ¿verdad? Así que hemos seguido adelante para tener una configuración de movimiento personalizada, y esto fue capaz de traer el comando de movimiento. Entonces le hemos puesto algunos detalles. Bien, entonces lo que hice, hice algunas pruebas en torno a tener que ejecutar la prueba Mving, la prueba maving y la compilación descubrí que algunas cosas estaban Y las cosas que estaban fallando era que vi que las variables de entorno establecíamos no estaban siendo inyectadas. No les estaban inyectando. Mirando la configuración, mirando tengo que mirar la documentación una vez más. Al mirar la configuración, entonces me dio algunas ideas sobre básicamente cómo hacerlo realmente. Y así fue como pude realmente hacer esto. Si vuelvo aquí, este es el que usamos para mudarnos. Así que vamos a ir a la acción. Entonces iré a publicar contenedores de servicio de contenedores de gas. Yo lo llamaré gtconcion servicios. Obtenga servicios de acción. Este servicio continúa. Aquí es donde tengo la idea que realmente uso. Va a publicar contenedor de gas. Vi que cuando intentaban ejecutar esto dentro de este paso, todavía agregaban una variable de entorno para agregar el entorno, lo que querían usar dentro de la aplicación. Seguí adelante e hice exactamente lo mismo. Es por eso que ves, antes que nada, mostré el entorno para estar seguro de que en realidad está entrando porque ya no estaba segura de que solo estaba recibiendo tantos errores. Si tuvieras que verificar la acción pero de este proyecto, verías que hay varias cifras porque hice muchas pruebas y no quería hacer esto en vivo en video para poder obtener tus precisiones antes de volver con ustedes. Entonces habiendo hecho esto, entonces seguí adelante y separé la prueba. Recuerda antes de ahora, estábamos haciendo un paquete de mudanza limpia, no teníamos la prueba de salto. Lo que hice es idealmente en una tubería, quieres separar tu prueba para estar seguro de que todas tus pruebas se ejecuten con éxito. Es por eso que acabo de ejecutar la prueba de mudanza con agudeza con esta prueba de limpieza en movimiento Esto ejecutará todas las pruebas que tenemos. Entonces entonces separé esto para hacer el edificio luego mover paquete limpio. Ya que hemos hecho la prueba aquí, puedo saltarme la prueba aquí. Y aquí estaba introduciendo ese pf de primavera que en realidad estaría usando nuestro archivo Docker Esto es básicamente lo que hice aquí y las cosas realmente salen bien, lo cual es muy bueno, es muy bueno. Sí. ¿Cuál es el siguiente paso? ¿Cuáles son las cosas realmente cambiadas para que esto funcione? Primero lo primero, recuerda que estamos usando los Springboks compuestos. Ahora, eso definitivamente causaría problemas aquí. Recuerda, ese aspecto de que tienes un motor Docker funcionando y está tratando de realmente botrap parte del post curado del gas por sí mismo, habrá un conflicto Primero y primero, entré y me quité el trampolín docker componer y quitando el trampolín docker componer, automáticamente, tuve que quitar esta propiedad, que es Docker componer prueba de salto, que usamos Creo que este segundo o tercer video también. Tuve que quitar esto para que no tengamos disturbinance, ¿verdad Sí, así que fui capaz de hacer. En segundo lugar, recuerda que recordamos que teníamos este guión, además de inyectar el inventario. Entonces inyectar el inventario también nos fallará porque la propiedad que establecemos dentro de esta parte es para que ejecutes actualizaciones, entonces esto probablemente nunca debería ser, ¿verdad? Pero cuando estamos ejecutando nuestra prueba cuando estamos ejecutando nuestras pruebas, tenemos que establecer esto para nunca. Le dijimos esto a nunca porque solo inyectamos una vez, luego solo estamos ejecutando la prueba una y otra vez. Pero ahora está automatizado, necesito encontrar una manera en la que cuando cada concurso de prueba se esté ejecutando, siempre trataría no arrancar o intentemos arrancar. Recuerda cuando ejecutas tu prueba, cada prueba cada prueba lleva la prueba de botas de primavera. Esta es una prueba de arranque de resorte. Lo que simplemente significa que sacará a colación el concurso cada vez. Y sacar a colación el concurso cada vez tiene una ventaja o ¿debo llamar desventaja ahora? Si siempre intentas ejecutar tu script, si estableces esto siempre una vez que esté ahí para seguir dándote el error diciendo que esta probablemente propiedad ya existe en la base de datos o venture ya contiene esta palabra clave, seguirá fallando. Lo que tenía que hacer además era crear un esquema. Recogí el esquema directamente de. ¿Cómo conseguí esto muy simple? Entonces dependiendo del cliente o dos que estés usando, podría tener esto directamente. Puedes simplemente si estás usando Intelligent ultimate como yo o Data grip o algún otro cliente o post gus, básicamente puedes generar básicamente puedes generar el DDL Entonces lo que tengo que hacer es cuando entré aquí ya ves, así que tengo esto. Acabo de generarlo directamente. Entonces eso es lo que hice. Yo lo acabo de generar. Y al generador acabo de copiar y que en realidad coloqué aquí. Entonces voy a repasarlo otra vez, sólo rápido. Simplemente hago clic, voy a SQR Scripts, luego generador. Una vez que vayas al generador, eso realmente lo generaría. Yo sólo lo copié. Yo no necesitaba esto. Tomé esto y tomé esto y eso es lo que tienes aquí. Puedes ver que tengo el índice create, tengo esto exactamente como lo tenemos nosotros. ¿Cuál es ahora la idea? La idea es que si miras nuestra propiedad, dijimos, ¿cuál es la propiedad ahora? Dijimos que debería diferir la inicialización. No estoy creando la tabla de inventario. Estoy creando manualmente tabla de inventario. Eso es para favorecer nuestra prueba. Eso es básicamente lo que hice. Al entrar aquí, esto se dispara, esto se apaga. Se quitó esto. Agregué esto quiero decir, agregué esto estoy bajando la mesa cada vez si existe. Lo dejo caer, recreo, luego inserto. Esto hará la inserción. Entonces la creación es la inserción. Para que por cada vez que realmente surja el concurso de pruebas, esto bajará la mesa si existe. Una vez que lo hace, luego insertamos. No tendrías el caso de la llave ya existe. La clave ya existe. Recuerden, todo esto está a favor de que tengamos que construir la imagen. Así que en realidad puedes mover las cosas, ¿verdad? Pero idealmente cuando voy a producción, tendrías una base de datos de producción, que ni siquiera deberías estar usando el DD ello DD amarillo también, ¿verdad? Este es el Amarillo también. Lo pones a null o nu más bien lo mueves totalmente, ¿verdad? Creo que lo mencioné algún tiempo antes en los videos. Entonces, lo que se supone que debes hacer es cargar el script tal como tienes este script aquí, ya que tienes este script aquí. Básicamente generas este script para todas las demás tablas. Entonces vas, se lo das a tus chicos de DBA y lo ejecutas directamente en la base de datos, el interior de las propiedades a null Pero aún así está bien. Dado que en realidad está construyendo esto en la tubería aún puede mover las cosas para ver si las cosas realmente funcionan con precisión. Uh, sí. Así que fui capaz de hacer. Volveré a repasar los cambios , tenemos una visión general. Entonces, si en realidad estás siguiendo este proyecto y estás tratando de codificar, entonces sabes exactamente qué hacer. Cuando llegas a esta etapa, lo que tienes que hacer es desactivar a este tipo, que es el trampolín que compone Docker, luego entra a actuar el guión, solo mostró cómo puedes crear el Recuerda, no olvides esta mesa de trabajo. No olvides esta mesa de trabajo. Todo se comprometerá tal como es para que pueda realmente usarlo directamente. Entonces tengo esto y estamos conscientes que estoy usando esta acción. Pero si tienes mucha curiosidad por saber, mira esto, mientras estoy corriendo la prueba, ya ves que no pasé. No pasé esta parte. No pasé ningún perfil. Estoy diciendo que uses cualquier perfil predeterminado que veas. Eso realmente usaría este perfil predeterminado. Y este perfil predeterminado siempre va tener un siempre esto como actualizaciones y eliminar a este chico y que pude hacer. Recuerda, tuve que agregar todas estas propiedades esta propiedad, todas estas propiedades que ves aquí. Entonces cada propiedad uno, dos, tres, cuatro, cinco, si ves, si te pierdes uno de ellos, tienes errores. Este no se supone que sea el horario de uso porque creo que una vez que lo conectaste en los ajustes como en los sets lo que lo haces en Github, quiero decir, esta parte aquí. Estoy en este paquete. por qué esto de aquí, este ambiente. Este ambiente aquí, en realidad todo debería inyectarse automáticamente. Pero descubrí cuando llegas a los escalones, las cosas no están funcionando como están. Y tenga en cuenta amablemente aquí, se espera que usemos Pogues y ningún anfitrión local Entonces, sea cual sea lo que usaste como nombre de tu contenedor, ¿verdad? Lo que sea que coloques a tu nombre de contenedor debería ser tu anfitrión, ¿verdad? Porque probé anfitrión local. El anfitrión local estaba llenando y me dio un poco de problemas con la depuración Entonces, cuando cambié a esto, funcionó, y tuve la idea de usar esta parte. Esta parte de aquí, agregando el anfitrión como Postgest pude conseguir que realmente funcionara, Bien, entonces creo que esto se ha hecho. Como nosotros hacemos la prueba con ustedes ahora así que vean exactamente cómo funciona. Probablemente cambie una cosa más. Ahora que hemos construido esto, tenemos una sección de muestra, tenemos una sección construida. Ahora es el momento de enfocarnos en esto. Pero antes que nada, queremos ver lo que figuraba en el expediente. Exploraremos esto para ver lo que estaba en la lista. Pero voy a agregar una propiedad Ns. Voy a agregar una propiedad, que es necesidades, y esto básicamente va a una básicamente necesitamos una construcción ¿cuál es el nombre de esta sección? ¿La sección es qué? Sección de construcción. Estas necesidades, en realidad podrías agregarlo como lo agregas de esta manera. Funciona. Probablemente agregue de esta manera como lista. Si tienes siete empleos de los que depende este empleo. Pero si es solo ya que es solo uno, solo puedo seguir adelante y agregarlo como un solo trabajo. Ahora bien, qué significa esto que recuerde la implementación por defecto, el comportamiento predeterminado es que los trabajos son paralelos, se ejecutan en paralelo. Pero agregándole esto, lo estás obligando a decir, Oye, esta sección de imagen push depende totalmente de este tipo. Verás que esto es totalmente dependiente una vez que lo ejecutes ahora mismo. Voy a publicar voy a parar este video aquí para que realmente podamos entrar en el siguiente video y ejecutarlo porque ya son unos 10 minutos. Los veo en el siguiente video. 13. Artefacto de carga en canalizaciones: Oigan, todos. Z aquí. Todo bien. Entonces ahora tenemos esta sección donde tenemos que ejecutar esto. Solo voy a hacer un resumen rápido porque me gusta el amigo creo que ayuda a que la información se pegue Aquí tengo problemas al intentar ejecutar esta prueba, la prueba. Separé la prueba de la compilación principal, y pueden ver, solo estoy haciendo ving clean test aquí, pero por aquí, no me estoy saltando la prueba Así que idealmente tu prueba debería ejecutarse antes de tu compilación principal. Así es básicamente como debería ir el pipeline para asegurar que no tengas ninguna prueba fallida. Tuve que traer todas estas propiedades, que en realidad se declaró dentro de esta aplicación del ñame y este Yamil es totalmente para la prueba puede ver que está en la prueba. Dice, cómo traer todas estas propiedades. Ahora bien, esto debería haber sido cableado directamente porque lo configuramos en la configuración. De hecho configuramos en los ajustes, pero descubrí que no trae nada. Entonces, cómo traer manualmente el medio ambiente y me dieron la idea de estas partes. Vi documentación donde tuvieron que traer en la prueba las propiedades. Para que yo fuera capaz de hacer eso realmente funcionó. Ahora mismo, lo que estamos probando es que agregué esta característica que es Necesidades. Necesidades significa lo que sea que coloques ahí, esto también puede ser una lista. Lo mostré en el último video. Significa que esto se ejecutará primero antes de que esto realmente se ejecute. Entonces eso va a hacer, y al mismo tiempo exploramos este archivo objetivo para conocer los archivos y qué almacenar en caché entonces podremos seguir adelante qué subir. Wever quiero subir, quiero descargar algunas cosas. Una vez que realmente lo haga, así podremos saltar realmente a la sección. Bien. Hagamos esto. Voy a cometer esto ir por aquí. Por aquí, en realidad comprometo esto digamos configurado llamar a este pipeline para mantener el contexto. Yo diría ejecutar trabajo en secuencia. Eso demuestra que en realidad podrás seguir con esa ejecución de trabajos ejecutados, solo llámalo Run Job is sequence. Copiaré esto, luego entraré aquí. Entonces solo cometeré esto contra esto Git comete esto luego se cierra. Entonces empujo. Tú empujas. Bien, así que sigamos este viaje. Entonces esto se ha ido. Vamos a entrar aquí. Y vayamos a nuestras acciones. Esta es la parte que estaba mencionando. miras esto, hay varios pelos. Tenía varios philos, ¿verdad? Mientras intentaba probar todo esto, pero en realidad pude conseguir trabajo aquí. Sigamos esto. Se puede ver porque lo ejecuto en secuencia, se puede ver esto porque tenía la palabra clave neat. Ves esto ahora está esperando que esto corra antes de que todos estuvieran corriendo de forma independiente, pero ahora esto está esperando, lo cual es bastante genial, Esto bastante genial. Ahora sabemos cómo ejecutar sequa Vamos a seguir esto ojalá no consigamos ningún error y podremos pasar al siguiente bit Vamos a esperarlo. Bien. Entonces esto está pasando. Yo solo publicaré el video. Volveré una vez que este trabajo esté completamente ejecutado. No importa, el trabajo está cerca 30, pero el puesto de trabajo es 40. Tendré 40, así que volveré una vez hecho esto. Entonces no quiero demorar. Bien. Bien, chicos, el trabajo está hecho. Como pueden ver, esto pero fue un éxito. Estaba muy feliz de tener éxito porque en realidad fui a muchos de los molestos para conseguir esto Y se puede ver que esto también funciona. Así que en realidad tenemos las cosas funcionando. Entonces nos interesan los archivos que se enumeraron. Recuerda, queremos descargar, queremos realmente mover archivos de la sección Pero a la sección push Min. Podríamos haber hecho todo un solo paso, pero solo quiero usar la idea para mostrarles cómo subir artefactos realmente. Esta parte realmente ahí y cómo descargarla. Eso es más o menos el Else podrías haber hecho todo un solo. ¿Correcto? También quería mostrarles que paso un trabajo puede depender otro trabajo y cómo configurarlo realmente. Sí, así que esa es toda la idea. Bien, así que vamos a enumerar el archivo. Bien. Todo bien. Entonces enumerando los archivos, pudimos ver que tenemos un archivo JR, que es script. Entonces mirando hacia abajo, mirando esto, tenemos prácticamente todos estos detalles. Estos archivos en realidad se están ejecutando, estos son el Yamofle, el archivo Do, la aplicación dock de Yamil y similares Así que tenemos todo realmente en obras bonitas. Esto funciona. Todo bien. Entonces la idea ahora, ¿cuáles son las cosas que queremos subir? Necesitamos especificar cuáles son las cosas que quieres subir. Ahora, recuerda que esto está disponible dentro de los objetivos, ¿verdad? Esto está disponible dentro del objetivo. Entonces, si revisas esta ruta de salida, recuerda, fuera del archivo de destino, tenemos la composición. Tenemos el expediente Docker, quiero decir. Recuerda, solo veamos la estructura y el proyecto para que podamos tener algunos. Entonces tenemos esto. Esta es una estructura. Tenemos un archivo Docker afuera, y dentro de la carpeta de destino es donde básicamente tenemos el archivo JAR una vez que se construye Así que tengámoslo en mente. Así que esto es básicamente fuera de la raíz, y esto en realidad dentro de la carpeta de destino. Entonces vamos ahora a agregar. Ahora vamos a agregar los archivos que queremos subir. Entonces, para subir archivos, vayamos al marketplace y veamos si hay algo más con respecto a subir. En realidad, la hay, pero quiero mostrarles chicos. Entonces vamos Gits, acción, mercado. Entra aquí busquemos subir. Así que vamos a subir. Bien. Si lo miras, tenemos subido un artefacto build, Upload a Bed artefact, ¿cómo se usa? Apenas abajo. Uso. Utiliza Acciones, sube artefactos en V cuatro. Entonces, ¿cómo cargamos los archivos que queremos meter? Abajo. Bajemos. Verás, ahí está esta parte llamada Sendero. Primero, podemos darle el nombre, el nombre. Este nombre es muy clave. Este nombre es muy clave. Necesitamos este nombre para que este nombre sea lo que usamos para realmente una vez que está subido, es usar este nombre básicamente como una clave y cuando lo estemos haciendo ping hacia abajo, podremos recuperarlo realmente. Uh partes de los archivos que realmente quieres subir. Ves dice si no hay expedientes. Básicamente, así es como usar. Vamos si nos das más ejemplos. Genial. Entonces ya ves, puedes pads al archivo que quieras usar. Entonces ¿podemos subir varios archivos? Porque quieres subir la descarga, Oh, sí. ¿Puedes ver esto? Puede subir esto. Ahora, en realidad ¿Qué es esto de aquí? Y esto significa que quieres ejecutar un comando multilínea. Un comando de varias líneas o realmente elegir esta ruta en líneas separadas. Aunque todos estén registrados como líneas separadas, y eso es exactamente lo que vas a usar Voy a agregar esta documentación que realmente comparto para que ustedes sepan exactamente cómo mirarla. Sí, volvamos a nuestro proyecto. Entonces, ¿cómo vamos con esto? Volvamos. Yo sólo escogeré este camino. Queremos usar esto. Interesado en esto, sólo voy a copiar esto tal como está. Sí. Si, quiero algo como esto quiero algo como esto. Bien Bien, entonces queremos subir algunas colas. Voy a entrar aquí. Llamando a Ning. Vamos a darle Subir Artefactos. Bien. Entonces eso es genial. Luego use. Eso es lo que lo copio para que esto alinee ya no necesito esto. Tenemos esto. Entonces más o menos, eso es lo que necesitamos. Entonces queremos ir a nuestra carpeta de destino, nuestra carpeta de destino para elegir el archivo que realmente queremos usar. Entonces voy a decir objetivos. Recuerde que esto estará en los destinos del archivo raíz y la slash. No sé si esto acepta un comodín o vamos a probarlo que acepte un comodín Entonces dentro de esto, quieres escoger también el Dockerfile. Ahora también tiene otra característica que solo quiero mostrar, digamos que no quieres quedarte este archivo porque es sensible en GIThuFever Había algo llamado sobrescribir. Podrías sobrescribir. Diciendo por cada vez que generes este archivo, siempre estás listo existente. Porque si no haces esto, yo uso la misma palabra clave, yo uso el mismo nombre. Perdón, perdón. Lo estropeé. Debería ser una pipa. Entonces, sí. Entonces llamémoslo primavera estado de ánimo leith luego swing modula Artefactos. Bien, entonces tenemos que establecer esto, entonces tenemos que establecer para también podamos establecer los días de retención. Entonces estas partes, entonces lo que está diciendo es, si esto ya existe, si esto ya existe y generalmente somos nuevos se anulan los archivos que tenemos aquí. Entonces también queremos los días de retención, ¿verdad? Retención dicen, quiero digamos que la retengamos por diez días, ¿verdad? Es en días, dices, retenerlo durante cinco días, ¿de acuerdo? Pero esto reemplaza a este tipo, esto siempre anulará a este tipo ¿Bien? Hemos sido capaces de hacer esto. Entonces probémoslo. No sé si el Wildcard funciona o lo contrario tendríamos que escoger el nombre completo, pero vamos a explorar Vamos a explorar. ¿Utiliza un comodín Digamos que puedes usar esto entonces veamos. Bien, creo que el comodín funciona. Creo que esto sería genial. Esto sería genial si el comodín realmente funciona Entonces no tenemos que buscar el nombre completo de la lima de resorte. Todo bien. Entonces, vamos a guardar esto. Entonces voy a llamar a esto vamos a conseguir un problema. Así que crea un problema. Yo lo llamaré subiendo ClesPipeline, por el bien del comteto, pipeline por el bien del comteto Subiendo artefactos. Bien, así que escojamos esto y veamos. Así que los niños se comprometen Bien, así que hecho eso entonces vamos a empujar. Vamos a empujar. Bien. Esto se ve bien. Esto se ve bien. Todo bien. Así que vamos a seguirlo y ver si esto realmente viene como realmente esperamos. Entonces recargaremos esto. Voy a hacer una pausa en este video y mostrar que terminar este edificio terminado antes de volver con ustedes mas para simplemente retrasar el video más tiempo. Déjame hacer una pausa en esto otra vez. Bien, chicos, estamos de vuelta. Entonces esto en realidad esto realmente todo exitoso. Así que entremos para explorar rápidamente. De esta manera subimos los artefactos, saltamos aquí. Subiendo artefacto, dos archivos. Habrá dos archivos subidos. Sí, eso es todo El nombre del artefacto es válido aquí. Entonces si pasas y dice Cool di Cool. Esto es genial. No muestra los artefactos namal. Se está cargando. Al parecer, pero sabemos exactamente lo que está cargado. Entonces lo que estamos recogiendo es primavera cualquier cosa que realmente comience con cualquier nombre, pero que termine con un tarro de puntos. Sólo tenemos un archivo que termina con el tarro de puntos. Básicamente, eso es lo que estamos buscando. Y si, también estoy escogiendo este doc también recogiendo este archivo Docker Esto realmente va a cargar dos. Vamos a estar seguros de que eso realmente pasó y ahora ¿cómo vamos a ser show? Lo vamos a averiguar en el siguiente video. Los veo en el siguiente video. 14. Contenido de descarga en pipeline: Hola a todos. Z aquí. Bien. Recuerda, pudimos subir con éxito y ¿cómo confirmamos los archivos que realmente subimos? Vamos a hacer eso y ver exactamente eso es en lo que nos vamos a centrar en este video. ¿Cómo validamos realmente todo muy simple? Ya que estás subiendo, deberíamos poder descargar y eso es exactamente lo que estamos haciendo aquí Recuerda que este otro trabajo depende de este trabajo. Entonces entramos aquí y ya hemos impreso algo aquí. Vamos a entrar aquí y vamos a descargar. Llamémoslo descarga. El nombre. Llámalo descargar. Llámenlo descargar, Artefacto. Descargar artefacto Ahora, queremos ver ya que hay una subida, estamos 100% seguros de que también habrá una descarga. Vamos a entrar aquí. Vayamos al marketplace y descarguemos. Bien. Entonces ya que hay una subida que dirá descarga, ¿ verdad? Trabajan de la mano, ¿verdad? Trabajan de la mano. Si vas al uso, simplemente similar, de la misma manera. Similar al uso en el que acabamos de colocar esto, entonces tenemos que el nombre nombre es muy clave. El nombre de artifa para descargar. Recuerda, en realidad agregamos este nombre así que debemos poder usar el mismo nombre. Creo que eso es más o menos todo. No necesitamos nada más, excepto que probablemente quieras configurar alguna actualidad, pero creo que eso es básicamente lo necesitamos. Yo sólo voy a entrar aquí. Yo solo usaré esto. Creo que sólo puedo copiar esto directamente. Voy a copiar esto con la W y voy a venir aquí y voy a probar esto aquí, ¿verdad? Ya no necesitamos esto. Ya tenemos listos, solo arregla esto. Con entonces nombre. Aparentemente, entonces ¿cuál es el nombre? Debemos usar exactamente el mismo nombre para evitar cualquier problema, exactamente el mismo nombre. Eso son básicamente ustedes chicos. Así es como hacer eso. No tenemos ninguno. Vamos a dar salida a los contenidos. Vamos a dar salida a los contenidos. Recuerden, chicos, recuerden, chicos, cada cogollo tiene un corredor. Entonces esta sección de muestra usa un corredor de Ubuntu, una vez hecho, se cierra. Esto usa un corredor diferente de Ubuntu, por lo que no son el mismo entorno virtual, debes estar consciente de eso, ¿verdad? Debes tener en cuenta que este servidor que en realidad se hizo girar es diferente a lo que hay aquí. Entonces una vez que esto es realmente subido, una vez que subiste nuestros datos aquí, subimos los detalles aquí, acabo de enviar a una caché en algún lugar del almacenamiento Github Github Entonces, una vez que realmente lo descargas, parece que es el mismo trabajo que se está ejecutando en el mismo contexto para el costo fringmd que soy propiedad de mí Si eso es así, entonces busca este nombre, luego descarga el contenido. Entonces tuve que señalarlo. Así que no creas que vas a ver estos detalles extra que imprimimos aquí cuando entramos aquí porque son dos trabajos separados y corren dos contextos diferentes. Bien, quería explicarte eso. Así que vamos a la salida. Vamos salidas. Vamos salidas, llamémoslo salidas. Contenidos descargados, contenidos descargados. Así que sólo voy a correr. Acabo de ejecutar un LS. Vamos LS. Entonces ese es este chicos. Todo bien. Entonces este tipo así que vamos a conectar esto, llamemos a esto. Vamos a crear un problema para esto. Voy a llamar a este pipeline, descarga y salida de contenido. Tubería. Descarga y salida de contenidos. Tenemos esto. Yo sólo puedo copiar esto. Entonces entra aquí, luego comete EM, luego usa aquí luego cierra. Vamos a empujar Bien, vamos a darle seguimiento. Vamos a darle seguimiento. Creo que esto ha pasado. Sí, ha pasado por. Esto debió haber ido a las acciones. Entonces ha cerrado esto, vamos a ir a las acciones. Vemos que esto ha puesto en marcha, se puso marcha.Esto listo para comenzar. Bien, así que ya empezó. Al igual que antes, posaré este video y volveré una vez que termine esta compilación . Todo bien. Nos vemos chicos. Bien, chicos, esto está hecho. Podemos ver la compilación completada con éxito en la tubería y la acción de imagen push o sección completada. Vamos a explorar. Exploremos esto. Aquí donde estamos descargando artefactos. Así que fue capaz de descargar un solo artefacto, prepararse para descargar, y en realidad fue capaz de ir a través y encontrar el artefacto, Un artefacto Recuerda, tal vez te estés preguntando ¿por qué estamos viendo un artefacto aquí Creo que no logré explicar eso en el último video. Pasemos a la sección Pero, a la sección Pero. Si vas a donde realmente subimos, si vas a donde realmente subimos, si miras hacia abajo, podrías ver que estaba cortando todo Todo estaba zip así que solo tenemos un archivo. Para Zip dos solo tenemos un archivo, ¿verdad? Porque estábamos subiendo dos archivos, pero estaba comprimidos. Creo que tiene sentido. Le dije que los archivos no están dispersos o probablemente sea manejado. Así que la cremallera cuando llegamos a esta parte, pudimos ver que todo está descargando solo un artefacto Yo quería señalarlo. Digamos contenido generado. Entonces un total de uno artefactos descargados. Veamos los contenidos. ¿ Puedes ver? Esto funciona. Esto es traer el objetivo, el Docker y el objetivo Oh, no queremos el archivo de destino. En realidad queríamos la primavera, ¿cuál es el nombre ahora? El resorte el archivo JA. Estamos consiguiendo esto. Básicamente tenemos que mirar exactamente qué hacer. Vamos a entrar a ver lo que nos falta, ¿ verdad? Eso es lo que nos falta. Todo bien. Así que entremos aquí. Sí, comprobando quiero volver a explorar este artefacto de descarga Subir artefacto. Creo que quiero duplicar esto, vamos a duplicar esta pestaña. Déjame ir a descargar subir artefactos, creo que el comodín no está funcionando como se esperaba Echemos un vistazo a la tarjeta W. Se dice subir un archivo individual todo un directorio. Esta es la parte que estaba recogiendo. Básicamente escogiendo todo esto. Pero queríamos un patrón de tarjeta W. Diciendo que queremos que escojas un camino. Empezar entonces vamos a ver. Empezar a estudiar caminos objetivos, creo que se supone que debemos usar esto, ¿ verdad? Se supone que debo usar esto. Un archivo cualquier dieta en el medio, luego cualquier archivo termina con. Probemos esto. Probemos esto. Eso debería estar mirando esto, entonces esto es negativo. Esto es una exclusión. No obstante, esto es un insumo, lo que tenemos, que corresponde a esto. Voy a recoger esto con impuestos la excreción. Entonces probaré esto para ver si eso realmente funciona como debería. Eso va a estar aquí. Ese será el objetivo objetivo estrella, luego star dot jar. Entonces demostramos que está directamente bajo el objetivo para da. Así que visto alguna ruta en el medio no hay caminos, solo buscamos el archivo Ja Probemos esto. Probemos esto. Esperaba que esto funcionara de cualquier manera. Vamos a ver cómo funciona esto. Yo no comprometería esto. Yo sólo lo ejecutaré directamente. No lo voy a comprometer con un problema, solo subo pruebas de pipeline. Carga de prueba. Veamos cómo se desarrolla esto en realidad. Bien, para ver si en realidad se ha subido correctamente. Voy a pausar este video como de costumbre. Volveré una vez que el Pero esté hecho, para poder ver si esto realmente funciona correctamente. De lo contrario, si en realidad no nos damos cuenta de esto, sólo voy a seguir adelante. Solo usaré el viaje completo, y eso básicamente debería solucionar este problema. Los veré una vez que esto esté hecho. Bien chicos, esto está hecho, así que vamos a comprobarlo. Bien, entonces estamos preocupados por esto. Entonces veamos los contenidos de salida. Todavía estamos recibiendo lo mismo. Todavía estamos recibiendo lo mismo. Estoy esperando solo los otros archivos, dando todo el archivo de destino. Y no necesitamos todo el archivo de destino. Esa es demasiada información. Lo que vamos a hacer, voy a entrar y luego traeré justo ese archivo. ¿Qué hacemos? Vamos a saltar rápidamente aquí. Iré a la sección Pero. Vamos a la salida. Comprobemos nuestro subido los archivos que enumeramos. Tenemos este archivo llamado el muelle modular, entonces caso creo que ese es el nombre spring Modulate Case que debe seguir este patrón Si vas a este archivo, debes seguir este patrón, que es el curso de modulación de primavera entonces debes agregar esto luego el frasco Eso es básicamente lo que debería pasar. Entonces quiero que esto se divida y escribe. Entonces voy a venir aquí, sólo voy a poner esto aquí bien. Entonces deberías tener un 001. Vamos a traer esta apéndice. Entonces creo que debería ser guión, entonces no jar. Déjame confirmarlo. Entonces vamos a venir aquí. Es un resorte causamos guión esto aquí, se puede ver que coincide Son partidos, ¿verdad? Lo cual es bueno. Entonces en esto de aquí, así lo notaremos. Bien, así que vamos a entrar en esto y voy a publicar este video y una vez que esté hecho, volveré, ¿verdad? Todo bien. Esto está hecho. Vamos a revisar y este video ya supera los 10 minutos, así que vamos a ver qué subimos. Así que subimos dos archivos. Genial. Vamos a ver esto. Entonces estamos apuntando a esto. Vamos a empujar la sección Imagen y ver si eso realmente descargó el madurar La una o dos salidas planas. Dame la carpeta de destino. Creo que sé exactamente lo que es. Volveré en el siguiente video y de hecho vería por qué esto realmente está escogiendo la carpeta de destino. Los veré chicos en el siguiente video. 15. Inicio de sesión en Docker en pipeline: Oigan, todos. Z aquí. Lo que tenía que hacer, entré y no cambié nada. Yo solo dije, déjame hacer un LS y hacer una L S de lo que hay en archivo, esta carpeta de destino. Esto es lo que me enteré. Cuando lo comprobé, pude ver que solo tenemos un archivo, que es este. Pensándolo, chicos, creo que esto funciona en nuestro freeboo. Quizás te preguntes cómo. Ahora, recuerde nuestro archivo Docker ejecutando este archivo Docker, que pretendemos, este archivo Docker básicamente buscará dentro de la No creo que quiera cambiar esto, quiero cambiar esto más. Tenemos que cambiar este archivo Docker para que ahora apunte al archivo JAR exactamente Eso no es exactamente lo que queremos. Creo que esto funciona en nuestro feboo así que no tenemos que cambiar nada Simplemente déjalo en los ts y esto funcionará directamente. Sólo quiero señalarlo. Esto funciona. Entonces lo que tenemos actualmente funciona. Entonces, ¿cuál es el siguiente paso? El siguiente paso es, vamos a empujar la imagen. Vamos a empujar la imagen. Pero para empujar la imagen, recuerden, necesitamos evaluar Docker Hub. Estoy usando Docker Hub Porque estoy usando Docker Hub, si prestas atención a por qué estamos haciendo el empuje Docker teníamos una sección a la que en realidad llamábamos teníamos una sección, que si pudiera recordar correctamente en este momento, el nombre de la sección, déjame sacarla Creo que son características listas para la producción, si me equivoco, características listas para la producción, ¿verdad? Sí. Creo que es una producción lista características. Tenemos una sección llamada características listas para la producción. Sí, eso es correcto. Eso es correcto. Lo busqué. Recuerda que tuvimos que iniciar sesión porque ya estaba logueado, así que tuve que presionar para hacer. Aquí ha pasado lo mismo. Recuerda, este diagrama, tenemos que una vez que hemos enumerado el contenido, iniciamos sesión, luego construimos y empujamos. Lo mismo que vamos a hacer aquí. Entonces, ¿cómo lo haces? Primero que nada, llamemos a este inicio de sesión de Docker. sesión de Docker. Debido a que quiero iniciar sesión, estoy ingresando solo pierdo mi tiempo. Entonces hay otra acción para el inicio de sesión de Docker. Vamos a averiguarlo. Todo bien. Así que terminamos con esto, así que ya no lo necesito. Volvamos aquí. Volvamos aquí y busquemos el inicio de sesión de Docker. ¿Tenemos algo como el inicio de sesión de Docker? Docker iniciar sesión con config. Es lo que estoy buscando. Llamemos a esto inicio de sesión. Di Docker Vamos a llamarlo Docker. Creo que necesita la acción que busco, conozco el nombre de la acción porque el nombre de la acción es log in action. Ese fue el que usé físicamente. Iniciar sesión en acción, ¿verdad? una acción de inicio de sesión, acción de inicio de sesión de Docker Déjame poner el nombre exacto. Hacer acción de inicio de sesión. Acción de inicio de sesión. Docker inicia sesión en acción, creo que esto es todo mal. Vamos a verlo. Esto no está definido correctamente. Comprobemos este . Inicio de sesión de Docker Es este Dal Login. Oh, increíble. Sí, ya está. Esto es. Así que solo inicia sesión, pasa tu nombre de usuario, pasa tu contraseña, y debería estar bien. Así que hsically eso es Pasa el nombre de usuario, pasa la contraseña, y debería estar bien. Entonces eso es víscamente. Así que vamos. Ahora, recuerden, se espera un token Github Git up token. Entonces, usar tu contraseña directamente podría no funcionar, ¿verdad? Usar tu contraseña ditly podría no funcionar. Vamos a probar ambos, y te diré exactamente cuál va a funcionar. Así que vamos a saltar. Vamos a saltar. Así que sólo voy a elegir esto. Ya lo tengo copiado en alguna parte. Voy a copiar esto y luego saltar aquí. Salta aquí, entonces simplemente voy a hacer clic en esto entonces. ¿Así exactamente como deberíamos vernos? Sí. Todo bien. Entonces lo siguiente que tenemos que hacer, lo siguiente que tenemos que hacer es agregar esto a los secretos. Esto necesita ser agregado para ser secretos. Conozco mi nombre de usuario, mi nombre de usuario está bastante abierto ahora ahí. Se llama Eikoz pero la contraseña en realidad se calienta. Voy a entrar y luego agregar mi contraseña, luego volveré. Lo que voy a hacer, le voy a copiar esto a este tipo. Sé que el primero es nombre de usuario, el primero es contraseña, entra aquí a las polutas, vayamos a Dispat settings, secrets Entonces iré al medio ambiente. La misma acción. Entonces tenemos que cablear en C. Así que tenemos que cablear ambiente, Recuerde que necesitamos cablear un entorno para poder detectar lo que es realmente hacer el uniforme. Voy a entrar aquí. Entonces esto es acción. Viniendo Secretos secretos. Ella los secretos. Nombre de usuario, paquetería. Solo publicaré esto y volveré una vez que haya subido esto. Solo publico esto y déjame agregar rápidamente mi. Todo bien. Lo he añadido en. Así que muy chulo. ¿Cómo lo agregas cuando estás en Docker Hub? Lo que debes hacer una vez que hayas agregado en Docker Hub, solo tienes que ir al lado derecho, ir a la configuración de la cuenta, otra configuración cuenta, ir a seguridad Y bajo seguridad, puedes generar en tu token SSIs. Entonces genera, pone en el nombre. Entonces una vez que genera, obtienes el token. Una vez que haya obtenido el token, entonces simplemente copie el token y lo use directamente. Entonces eso es lo que hice. Lo hice para esto modular Aces token Así que lo he agregado a la variable de entorno por aquí. Yo lo he añadido, así que no podrás verlo. Entonces podemos usarlo directamente. Bien, entonces creo que eso es lo que necesitamos. Sí, así que estamos aquí. Así que vamos a estar seguros. Estos realmente funcionan con éxito. Así que tenemos que estar seguros si realmente inicias sesión con éxito, ¿verdad? Entonces, si no funciona, este error de tendencia, pero si funciona, esto básicamente funcionaría directamente. Así que vamos a quedarnos fuera. Entonces vamos a llamar a esto vamos a llamar a este login, pipeline, do login. Entonces llama a este pipeline do login. Todo bien. Así pipa y Doc iniciar sesión. Así que voy a cerrar esto. Solo consigue commits. ¿Cómo consigo push? Bien. Justo como antes, voy a publicar este video. Una vez que termine el gasoducto, volveré para mostrarles cómo funcionó realmente. Entonces nosotros para ver qué pasó. Los veré una vez que esto esté hecho. Todo esto está hecho. Al regresar aquí, veo que estamos teniendo el mismo problema, sesión de Docker y representante de paquetería, pero lo suministré Entonces, lo que probablemente pasó es el mismo caso que realmente experimentamos aquí. El mismo caso que experimentamos donde tuve que agregar esto manualmente. Entonces lo que voy a hacer, volveré aquí para hacer esto también. Lo que voy a hacer, voy a entrar aquí. Entonces porque esto es correcto, Docker Undersco nombre de usuario, Docker UnderscoPassword Y coincide con lo que realmente tenemos en ajustes, comprobaremos el entorno. Al medio ambiente, comprobar la acción. Oh, bien. Entonces esto podría no funcionar en realidad, porque no especificé esta acción. Entonces esto podría no funcionar. No especificé el entorno, así que creo que ese error podría ser para mí. Entonces déjenme hacerlo rápidamente. Entonces hay que especificar el entorno en el que se está ejecutando. Entonces estoy dirigiendo a este tipo. Verás, no agregamos un ambiente, así que estoy dirigiendo a este tipo en la acción del medio ambiente. Bien, entonces déjame empujar esto diciendo que comete. Eso es entonces gasoducto. Pipeline, luego agregó entornos para empujar la sección de imagen. Entonces eso básicamente cierra 34, aunque todavía no lo he creado. Entonces voy a llamar a esto hacer esto. Yo haré esto, luego saltaré aquí. Entonces crearé un número, haré esto, luego colocaré esto aquí, luego someteré y eso es 34, ¿verdad? Sí, eso es 34. Entonces podremos comenzar esto Entonces puedo empujar puedo empujar. Déjame pasar esto rápidamente y volveré una vez que esto esté hecho, tú lo hiciste. Bien chicos, esto está hecho, déjeme ir. Ese debería ser el último 134. Recuerda, 34. Esa es la identificación que usamos. Entonces entraremos y revisaremos una sección push me y haremos un login. Ver triunfar. Sí. Esto nos lleva a la última fase. Si miras esto correctamente, esto triunfa. Sesión de imagen push, exitosa. Esto nos lleva a la última fase, a la última fase. Lo que vamos a hacer lo que vamos a hacer es que solo necesitamos empujar la imagen. Eso es todo lo que queda. Sólo tenemos que empujar la imagen. A esto lo llamamos carril, luego Octo cd esta imagen de empuje Eso es lo que tenemos que hacer, empujar imagen. Después luego procedemos a decir así que añadimos para empujar la imagen. Lo genial es que tenemos otro inicio de sesión más. Tienes otro. Eso funciona exactamente de la misma manera. Entonces ya tengo esto ya copiado en alguna parte. Así que solo búscalo. Se llama la acción push image, ¿verdad? Es la acción push image. Entonces la pushiección. Creo que esto es todo. Empuje la imucción. El último que utilicé fue la versión cinco. Ahora es la versión seis. Creo que ahora es la versión seis. Bien. Seis eso es lo que uso. Ya veo, ¿así es como se llama? No, no, esto esto. Veamos este empujón de apuesta de Docker. Al parecer ahora este Scott Docker. Componer servicio push image. Es Docker Pero empuja. Ya que hay tantas opciones en estos momentos. Me resulta difícil ver exactamente la misma. No, no, no. Busquemos esto. ¿Qué es probar esto Appaly no esto? Creo que he probado esto prueba esta C pequeña conserva. lejos, ya sé el exacto a usar. Yo hice una investigación. Investigué un poco. Intentemos esto, probemos esto. Al parecer, no esto también. Investigué un poco, así que sé exactamente qué es. Entonces se supone que debe ser, se supone que es este tipo. Lo hago en todo lo demás. Yo sólo empujaré. Yo sólo lo agrego aquí. Solo lo agrego y te explicaré los detalles. Esto sería usos es la conversión cinco. Estos videos lo consiguen largos. Simplemente publicaré el video aquí y los veré chicos en el siguiente video. 16. Imagen push en Docker de pipeline: Oigan, todos, aquí. Pude localizar la acción que realmente necesitábamos. Este es el nombre de la acción. Creo que por qué en realidad lo encontré difícil porque ahora está en la versión seis, y estaba usando la versión cinco. Lo que voy a hacer es que voy a cambiar a versión seis para que podamos ver cómo funciona. Así es exactamente como se ve, y espera que uses una configuración Dux Esto es muy clave, inicias sesión y los me gusta pero ya hemos completado este paso en cuanto a iniciar sesión y los me gusta. Esta es la acción de empuje que hemos completado esto. Esta es la parte que se supone que debes usar ahora mismo, que en realidad nos dio un problema. Entonces también espera que uses un Bx, este Brex para configurar una sección Bex, Esto en realidad son bastantes detalles, pero en realidad he entrado a modificarlo para que eso funcione. Creo que jugué los proyectos que realmente hicieron eso. Entonces así es como se supone que debe funcionar. Usted acaba de poner el buder y poner el Bex. Entonces necesito estar seguro de que estos pasos, el Brex realmente existen, ¿verdad? Estos pasos, los constructores realmente existen. Entonces eso es exactamente lo que vamos a usar. Entonces la sección Bex es lo que realmente vas a pasar aquí. Entonces las salidas el nombre. Entonces esa sería básicamente la salida de este tipo. Entonces voy a ir a ver si este contexto existe y Builder existe o existe archivo en la versión seis, puedes jugar con la versión seis. Entonces eso es lo que voy a hacer. Entonces me gusta usar las últimas actualizaciones de cosas porque significa que en realidad probablemente hayan hecho algún trabajo del que no conocemos. Entonces iré a la sección de archivos, entonces. Entonces esperando un contexto contexto aquí. Sí, hay un contexto. Se encuentra un archivo eri. Entonces hay un archivo o sí, hay un archivo. Entonces, ¿es un Constructor? Oh, sí, eso es un constructor. Bien. Entonces creo que esto es lo que necesitamos. Sí, esto es básicamente lo que necesitamos. Entonces esta parte es lo que necesitamos ahora. Si miras esta compilación, si miras esto correctamente, esto es dar los pasos, el nombre del punto BDExoputs Y esto realmente parece un ve dentro de uno de estos archivos. Entonces ahí es donde es bueno realmente averiguar. Entonces déjame cambiar esto para que me permita cambiar esto a una versión seis. Por favor entonces, entonces cambia esta versión enferma. Bien, entonces se supone que esto debe estar ahí. Entonces seguiré adelante y cambiaré. Esto es de uno de mis proyectos anteriores. Entonces lo que estamos usando es modular. Entonces con override lo que ya tenemos, recuerda, si estás empujando, tienes que empujar a tu nombre de usuario, tu nombre de usuario, luego recorta los proyectos Bien. Entonces esto hará todo el edificio y empujará a Docker Hop, ¿verdad Entonces déjame comentar esto. Me comprometo es llamar a este push pipeline push. Ojalá no consigamos errores. Entonces llámalo tubería push docker bead y push. Esto sería 35, creo, porque la última vez alrededor fue 34, ser 35. Voy a copiar esto. Entonces todo un problema. Salir de un problema. Señor, creo que voy a buscar un proyecto Quate un tema, entonces aquí dentro Deja de emitir, eso es 35. Entonces ya tenemos esto aquí. Yo sólo pegaré esto. Empuje. Empujen, chicos, yo solo publicaré el video aquí. Volveré con ustedes una vez que se haya hecho esto, para que no tengamos que esperar mientras esto esté cargado. Bien, los veo chicos. Chicos, esto está hecho y esto se completa con éxito. Genial es genial. Lo que hacemos es ir a Docker Hub, confirmaré y refrescaré esto Y se puede ver esto fue empujado hace 1 minuto. Tenemos nuestra imagen. Esto es totalmente automatizado. Esto es totalmente automatizado. Un cambio más quiero hacer. Estaba usando la Versión cinco aquí donde vimos esta Versión seis disponible. Vamos a probar la versión seis. Vamos a probar la versión seis. Lo que voy a hacer, simplemente voy a dejar esto como está, toda la otra configuración y solo voy a empujar. Voy a solo un push Pipe y Lou push versión seis, luego cierra 36, ¿verdad? 36. Entonces copiemos esto. Sólo quiero ver si la versión seis está funcionando. Si no está funcionando, solo revertimos. Bien, entonces déjame ir. Vamos a recoger esto. Vamos a conseguir un problema, un número nuevo, menos que pegar. Se mordió un empujón seis. ¿Bien? Bien, así que omita eso. Entonces viene esto y empuja. Bien. Todo bien. Entonces chicos, sí quiero ir al video una vez más si están confundidos. En cuanto a este miembro del partido, tuve que agregar mi token aquí aparte de la contraseña normal de Der, necesito mencionarlo. Esto se ejecutará. A ver. Empujado con éxito, vaya a Voy a ir a mis acciones. Entonces esto se inicia. Yo solo publicaré el video cuando esté hecho. Volveré con ustedes. Veamos la versión seis funciona. Bien, chicos. Sí, esto está hecho. Vemos todo completado con éxito. Así que vamos a echar un vistazo a la imagen push otra vez, ¿verdad? Entonces puedes ver como de costumbre, está usando Emas Koreto Está usando nuestro archivo Docker. Es edificio y todo funciona como debería. Simplemente puedes confirmarlo. Esto fue hace 1 minuto, vamos a refrescar esto. Bien, así que a falta de 1 minuto para el final. Esto es muy reciente. Bien, entonces hemos podido completar esto y esto es básicamente lo que quieres hacer para construir tu imagen. Cualquier paso adicional que quieras hacer que probablemente tire la imagen de Docker Hub y luego se mueva a otro registro Podrías agregar más pasos a esto, agregar más pasos o agregar más trabajos que se están ejecutando en secuencia a esto. Podrías subir la imagen, tirar de la imagen subir. Básicamente podrías hacer cualquier cosa. Ahora, la idea es hacerte entender que el pipeline es algo difícil, o más bien solo para que tengas en el fondo de tu mente que se trata de pasos manuales de automatización que estás haciendo, solo quieres probablemente automatizar y usamos la acción Gear para lograr esto y todo funcionó como realmente esperamos. Mirar este archivo a la vez puede parecer desalentador. Pero pasando paso a paso, como explicamos todos los videos, estoy seguro de que esto realmente funcionaría. Básicamente tú para que realmente sigas adelante. Gracias chicos. Entonces hay una última cosa que quiero mencionar. Recuerde que tuvimos que agregar esta configuración moviendo mientras la mudanza predeterminada que estaba incorporada en el contenedor Binto no se estaba ejecutando Entonces podrías notar, como resultado, podrías notar que este caché no está entrando en acción Por alguna extraña razón, no está pateando. Mi analogía en realidad demostró que esto es porque en realidad agregaste esto Probablemente antes de agregar esto, por favor ejecute esto directamente. Es posible. La película podría entrar en acción. Tal vez solo haya algunos problemas predeterminados y es posible que no tengas que agregar esto realmente. Con eso hecho, les agradezco chicos que se quedan conmigo. Realmente agradezco el tiempo y los veo chicos en el siguiente video. 17. Secretos de env en tuberías: Hola a todos. Z aquí. Bien, entonces estamos de vuelta. Nosotros como paramos esto y estamos tratando definir toda la variable de entorno. Recuerda, hicimos una pausa de construir nuestro archivo de acción. Diciendo queremos definir esta variable de entorno. Ahora, se podrían ver varias acciones por ahí, donde definen toda la variable, pero esto está bien. Esto funciona. Funciona con precisión. Bueno, entonces significa si necesito realmente cambiar alguna variable, ¿verdad? Si necesito cambiar alguna variable, tendría que renombrarla aquí, tengo que entrar aquí, cambiarla, luego empujar a GitHub. Y eso es lo que hago. Eso es lo que hago. GitHub realmente nos da ofertas donde realmente podríamos guardar sobre todas nuestras variables junto a nuestros secretos, ¿verdad? Vilas, ¿qué son secretos? Los secretos son como tu nombre de usuario, tu contraseña, datos sensibles que no deberían estar abiertos a nadie. Yo entiendes, estos son secretos y estas son tus variables de entorno. Entonces secretos variables, vamos a explorar eso ahora, ¿verdad? Entonces saltemos a Github. Esto es GitHub. Ahora, digo, aquí es donde tenemos nuestras acciones. Nuestras acciones están disponibles aquí. Ahora, estoy diciendo dentro de la primavera modular curso, que es sutil porque vamos a ir a los ajustes. Déjame ver los stans. Ahora mira aquí abajo, puedes ver que hay un ambiente. Ahí está el ambiente. Vayamos al medio ambiente. Ahora, dice que no hay ambiente. Al parecer, no hay ambiente. Vamos a etiquetar qué entorno quieres tener ahora. Piensa en entornos como tu perfil, ¿verdad? Piensa en tu perfil. Recuerda que en realidad podrías tener cosas como una producción Dev UAT para tu aplicación la aplicación Yao de propiedades, ¿verdad Entonces pensémoslo, pensémoslo con respecto a esto, ¿verdad? Así que en realidad podrías tener un entorno Dev , un entorno Docker Entonces voy a etiquetar esto porque Dev estaba en mi sistema local, todo era raro. Estoy más interesado en mi entorno docker porque aquí es donde tenemos algunos detalles que necesitamos para realmente cablear las variables y los secretos Voy a entrar aquí, voy a llamar a esto, ¿cuál es el nombre de mis ambientes? Voy a llamar Docer a mi entorno. Vamos a configurar mi entorno. Este es mi entorno. Entonces podrías establecer reglas. Si hay una organización, ya sabes, Github es una característica de organización donde podrías tener colaboradores, ¿verdad? En realidad podrías hacer eso y empezar a establecer tus puntos de vista, pero este no es el objetivo. Voy a saltar a lo que necesitamos. Entonces lo que necesitamos es que tengamos secretos de entorno y variables de entorno. Entonces esto es lo que vamos a estar definiendo aquí dentro de nuestro Docker Recuerda el entorno Docker. Por lo que esto se definirá dentro del entorno Docker. Entonces, si tienes una producción, significa que creas otro ambiente más, entonces vienes aquí. Ahora creas otro entorno más en esta ocasión, probablemente nombre o producción. Asegúrese de especificar este entorno de producción dentro de su archivo de acción y que vea hacer. Queremos explorar esto. En primer lugar, definamos nuestras variables. ¿Cuáles son nuestras variables? De hecho, he esbozado algunos de ellos aquí. Déjame venir aquí. Entonces estos son variables. He seguido adelante para separar cada uno de ellos, para separar a cada uno de ellos. Entonces tenemos cosas como los modos tenemos el nombre de usuario modular, contraseña Dije, configurar la variable de entorno. Entonces cualquiera que veas coloco una V aquí es una variable, cualquiera que toque una S es un secreto. Estos dos pueden etiquetarse como secretos y todos estos pueden etiquetarse como entorno. Entonces es una elección. Puedes decidir cuál quieres colocar como sec o cuál colocar un ambiente. Si tienes una IP que yo quiero no quieres exponer no quieres que nadie vea físicamente, sin embargo, es un secreto. Podrías simplemente llevar a cabo por ejemplo la IP la IP del host. Colócala en secreto, solo quiero mostrarles chicos que tienen estas opciones para explorar realmente. Déjame ver si podría separarme si puedo unir mis dos pantallas. Entonces hagámoslo. Bien. Voy a entrar aquí y voy a decir, voy a elegir esto. Quiero la variable. Lo siento. Yo elijo la variable. Quiero la variable de resorte, ¿qué estoy haciendo? Entonces mi variable e intercambiado Docker. Recuerda que es Docker. Recuerda que esto es exactamente lo que pasamos al perfil de giro mencionado esto anteriormente al archivo Docker, ¿verdad Entonces agrego la variable. Fresco. Ahora tenemos esto. Vamos a agregar más, ¿verdad? Agreguemos más. Agreguemos otra variable. Al siguiente, voy a elegir al anfitrión. Mi anfitrión es intercambiado puesto Local. Sustantivos es puesto Local Fresco. Vamos a escoger el siguiente siguiente es ollas. Oh, ¿son las ollas? Hola 43, dos, cuatro, tres, dos. Fresco. Lo que es lo siguiente es nombre de base de datos. Muelle Modulf. Ahora bien, ¿qué pasa si esto no está disponible? Sencillo. Si esto no está disponible, simplemente puede venir fácilmente aquí para verificar, verá que hay una edición incorporada aquí. Vienes aquí y editas. Vienes aquí y editas rápidamente. Esa es la ventaja. Para que no tengas que redesplegar tu archivo de acción. También tenemos una propiedad llamada la proporción de eventos de eliminación, que usa ahora estamos publicando los eventos fallidos. En realidad usamos 4 mil. Vamos a pres esto aquí Fresco. Entonces tenemos otro llamado los puntos finales del actuador, los extremos que desea exponer, 10.1 para exponer Este es el valor que colocará en el modulit. Fresco. Así que en realidad hemos podido configurar esto ahora para el secreto. También configura el sequit que es el nombre de usuario modulit, que es modulits Vamos a establecer esta contraseña mult. También es el mismo modular. Todo bien. Bien. Ahora esto es increíble. De hecho tenemos esto, y creo que esto es lo suficientemente bueno, ¿ verdad? Esto es lo suficientemente bueno. Chicos, vamos a configurar esto. Los veré chicos en el siguiente video mientras seguimos procesando. Los veo en el siguiente video. 18. Cierre de pipeine: Yay, defiéndete al campeón, defiéndete por el campeón Mira quién está aquí, el campeón. Te estoy refiriendo para que llegues a esta sección del curso, no sólo entiendes el módulo, ahora ya sabes cómo construir el pipeline del CICD Simplemente puedes recoger el conocimiento y aplicarlo donde sea en cualquier plataforma. Funciona exactamente de la misma manera, ¿verdad? Mi trabajo o mi propósito es transmitir este conocimiento que tienes amasa ahora te pertenece ¿Por qué no te vas y muestras esas habilidades? ¿Bien? Ahora se puede desarrollar el pipeline de CICD Ahora ya sabes cómo usar un pipeline CICD. Ya no es un misterio, ahora puedes desmitificarlo La acción Gill es solo una de sumergirse en Azure, sumergirse en cualquier otra plataforma Recuerda, el secreto clave es, saber lo que quieres lograr, poner paso a paso. Todo usa el mismo proceso. Utilizan conceptos como trabajos, conceptos como pasos y similares, y también puedes inyectar secretos y variables de entorno. Estoy tan feliz de que estuvieras aquí, ahora has podido realmente lograrlo. No obstante, como dije, como mencioné en el último resumen de la primera clase, hay una sección más, que es la sección final, que es Kubernetis Kubernetis son algunos lo llaman KHS. Esa es una plataforma muy emocionante. Seguro que has oído hablar de Kubernetis. Esta es una oportunidad para que realmente ahondes en Kubernetis y va a ser achilrating Te puedo asegurar que va a ser maravilloso. Voy a tomarlo de paso a paso lo voy a tomar desde el mismo cero y voy a ir paso a paso. No tienes que preocuparte, no sé exactamente qué significa esto. De hecho vas a llegar a ser muy familiar. Y convertirte en maestro en poco tiempo, entonces puedes seguir adelante para aplicar ese conocimiento. Espero verte en la próxima clase. Recuerda, revisa lo antes posible. Consulta el acerca de la bañera. Te dejaré un enlace ahí, llévelo a la siguiente clase. Espero que en verdad vengas conmigo. Nos vemos en la siguiente clase.