You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 03-cd/exercises/README.md
+31-15Lines changed: 31 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,21 +6,21 @@ Para superar el módulo debéis entregar como mínimo:
6
6
* La parte obligatoria de los ejercicios de GitHub Actions.
7
7
* Uno de los dos ejercicios opcionales de la parte de GitHub Actions
8
8
9
-
## Ejercios Jenkins
9
+
## Ejercicios Jenkins
10
10
11
11
### 1. CI/CD de una Java + Gradle - OBLIGATORIO
12
12
13
-
En el directorio raíz de este [código fuente](./jenkins-resources), crea un `Jenkinsfile` que contenga un pipeline declarativa con los siguientes stages:
13
+
En el directorio raíz de este [código fuente](./jenkins-resources), crea un `Jenkinsfile` que contenga una pipeline declarativa con los siguientes stages:
14
14
15
-
***Checkout** descarga de código desde un repositorio remoto, preferentemente utiliza GitHub.
16
-
***Compile** compilar el código fuente, para ello utilizar`gradlew compileJava`
17
-
***Unit Tests** ejecutar los test unitarios, para ello utilizar`gradlew test`
15
+
***Checkout**. Descarga de código desde un repositorio remoto, preferentemente utiliza GitHub
16
+
***Compile**. Compilar el código fuente utilizando`gradlew compileJava`
17
+
***Unit Tests**. Ejecutar los test unitarios utilizando`gradlew test`
18
18
19
19
Para ejecutar Jenkins en local y tener las dependencias necesarias disponibles podemos contruir una imagen a partir de [este Dockerfile](./jenkins-resources/gradle.Dockerfile)
20
20
21
21
### 2. Modificar la pipeline para que utilice la imagen Docker de Gradle como build runner - OBLIGATORIO
22
22
23
-
* Utilizar Docker in Docker a la hora de levantar Jenkins para realizar este ejercicio.
23
+
* Utilizar Docker in Docker a la hora de levantar Jenkins para realizar este ejercicio
24
24
* Como plugins deben estar instalados `Docker` y `Docker Pipeline`
25
25
* Usar la imagen de Docker `gradle:6.6.1-jre14-openj9`
26
26
@@ -34,7 +34,7 @@ Para ejecutar Jenkins en local y tener las dependencias necesarias disponibles p
34
34
*`maven:build` - En este `stage` el código de la aplicación se compila con [maven](https://maven.apache.org/).
35
35
*`maven:test` - En este `stage` ejecutamos los tests utilizando [maven](https://maven.apache.org/).
36
36
*`docker:build` - En este `stage` generamos una nueva imagen de Docker a partir del Dockerfile suministrado en el raíz del proyecto.
37
-
*`deploy` - En este `stage` utilizamos la imagen anteriormente creada, y la hacemos correr en nuestro local
37
+
*`deploy` - En este `stage` utilizamos la imagen anteriormente creada, y la hacemos correr en nuestro local.
38
38
39
39
***Pistas**:
40
40
* Utiliza la versión de maven 3.6.3
@@ -63,20 +63,20 @@ Acciones a probar:
63
63
64
64
Relizar de las siguientes maneras:
65
65
66
-
***Con el método de CI job permissions model**
66
+
***Con el método de CI job token**
67
67
* ¿Qué ocurre si el repo que estoy clonando no estoy cómo miembro?
* Crear deploy key en el repo springapp y poner solo lectura
73
-
* Crear pipeline que usando la deploy key
73
+
* Crear pipeline que use la deploy key para clonar el repo
74
74
75
75
> Pista: https://docs.gitlab.com/ee/ci/ssh_keys/
76
76
77
77
## Ejercicios GitHub Actions
78
78
79
-
### Ejercicio 1. Crea un workflow CI para el proyecto de frontend - OBLIGATORIO
79
+
### 1. Crea un workflow CI para el proyecto de frontend - OBLIGATORIO
80
80
81
81
Copia el directorio [.start-code/hangman-front](../03-github-actions/.start-code/hangman-front) en el directorio raíz del mismo repositorio que usaste para las clases de GitHub Actions. Si no lo creaste, crea un repositorio nuevo.
82
82
@@ -85,18 +85,34 @@ Después crea un nuevo workflow que se dispare cuando haya cambios en el proyect
85
85
* Build del proyecto de front
86
86
* Ejecutar los unit tests
87
87
88
-
### Ejercicio 2. Crea un workflow CD para el proyecto de frontend - OBLIGATORIO
88
+
### 2. Crea un workflow CD para el proyecto de frontend - OBLIGATORIO
89
89
90
90
Crea un nuevo workflow que se dispare manualmente y haga lo siguiente:
91
91
92
92
* Crear una nueva imagen de Docker
93
93
* Publicar dicha imagen en el [container registry de GitHub](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry)
94
94
95
-
### Ejercicio 3. Crea un workflow que ejecute tests e2e - OPCIONAL
95
+
### 3. Crea un workflow que ejecute tests e2e - OPCIONAL
96
96
97
-
Crea un workflow que se ejecute de la manera que elijas y que ejecute los tests usando [Docker Compose](https://docs.docker.com/compose/gettingstarted/) o [Cypress action](https://github.com/cypress-io/github-action).
97
+
Crea un workflow que se lance de la manera que elijas y ejecute los tests e2e que encontrarás en [este enlance](../03-github-actions/.start-code/hangman-e2e/e2e/). Puedes usar [Docker Compose](https://docs.docker.com/compose/gettingstarted/) o [Cypress action](https://github.com/cypress-io/github-action) para ejecutar los tests.
98
98
99
-
### Ejercicio 4. Crea una custom JavaScript Action - OPCIONAL
99
+
#### Como ejecutar los tests e2e
100
+
101
+
* Tanto el front como la api se deben estar corriendo
102
+
103
+
```bash
104
+
docker run -d -p 3001:3000 hangman-api
105
+
docker run -d -p 8080:8080 -e API_URL=http://localhost:3001 hangman-front
106
+
```
107
+
108
+
* Los tests se ejecutan desde el directorio `hangman-e2e/e2e` haciendo uso del comando `npm run open`
109
+
110
+
```bash
111
+
cd hangman-e2e/e2e
112
+
npm run open
113
+
```
114
+
115
+
### 4. Crea una custom JavaScript Action - OPCIONAL
100
116
101
117
Crea una custom JavaScript Action que se ejecute cada vez que una `issue` tenga la etiqueta `motivate`. La acción deberá pintar por consola un mensaje motivacional. Puedes usar [esta API](https://type.fit) gratuita. Puedes encontrar más información de como crear una custom JS action en [este enlace](https://docs.github.com/es/actions/creating-actions/creating-a-javascript-action).
0 commit comments