|
1 | 1 | # Ejercicios
|
2 |
| - |
| 2 | + |
3 | 3 | ## Ejercios Jenkins
|
4 |
| - |
| 4 | + |
5 | 5 | ### 1. CI/CD de una Java + Gradle
|
6 |
| - |
7 |
| -En el directorio raíz de este [codigo fuente](), crea un `Jenkinsfile` que contenga un pipeline declarativa con los siguinetes stages: |
8 |
| - |
| 6 | + |
| 7 | +En el directorio raíz de este [código fuente](./jenkins-resources/calcultor), crea un `Jenkinsfile` que contenga un pipeline declarativa con los siguientes stages: |
| 8 | + |
9 | 9 | * **Checkout** descarga de código desde un repositorio remoto, preferentemente utiliza GitHub.
|
10 | 10 | * **Compile** compilar el código fuente, para ello utilizar `gradlew compileJava`
|
11 | 11 | * **Unit Tests** ejecutar los test unitarios, para ello utilizar `gradlew test`
|
12 |
| - |
| 12 | + |
13 | 13 | Para ejecutar Jenkins en local y tener las dependencias necesarias disponibles podemos contruir una imagen a partir de [este Dockerfile](./jenkins-resources/gradle.Dockerfile)
|
14 |
| - |
15 |
| -### 2. Modificar la pipeline para que utilice la imagen Docker de Gradle como build runners |
16 |
| - |
| 14 | + |
| 15 | +### 2. Modificar la pipeline para que utilice la imagen Docker de Gradle como build runners |
| 16 | + |
17 | 17 | ## Ejercicios GitLab
|
18 |
| - |
| 18 | + |
19 | 19 | ### 1. CI/CD de una aplicación spring
|
20 |
| - |
| 20 | + |
21 | 21 | * Crea un nuevo proyecto en GitLab y un repositorio en el mismo, para la aplicación `springapp`. El código fuente de la misma lo puedes encontrar en este [enlace](../02-gitlab/springapp).
|
22 | 22 | * Sube el código al repositorio recientemente creado en GitLab.
|
23 | 23 | * Crea una pipeline con los siguientes stages:
|
24 |
| - * maven:build - En este `stage` el código de la aplicación se compila con [maven](https://maven.apache.org/). |
25 |
| - * maven:test - En este `stage` ejecutamos los tests utilizando [maven](https://maven.apache.org/). |
26 |
| - * docker:build - En este `stage` generamos una nueva imagen de Docker a partir del Dockerfile suministrado en el raíz del proyecto. |
27 |
| - * deploy - En este `stage` utilizamos la imagen anteriormente creada, y la hacemos correr en nuestro local |
28 |
| - |
| 24 | + * maven:build - En este `stage` el código de la aplicación se compila con [maven](https://maven.apache.org/). |
| 25 | + * maven:test - En este `stage` ejecutamos los tests utilizando [maven](https://maven.apache.org/). |
| 26 | + * docker:build - En este `stage` generamos una nueva imagen de Docker a partir del Dockerfile suministrado en el raíz del proyecto. |
| 27 | + * deploy - En este `stage` utilizamos la imagen anteriormente creada, y la hacemos correr en nuestro local |
| 28 | + |
29 | 29 | * **Pistas**:
|
30 |
| - - Utiliza la versión de maven 3.6.3 |
31 |
| - - El comando para realizar una `build` con maven: `mvn clean package` |
32 |
| - - El comando para realizar los tests con maven: `mvn verify` |
33 |
| - - Cuando despleguemos la aplicación en local, podemos comprobar su ejecución en: `http://localhost:8080` |
34 |
| - |
| 30 | + - Utiliza la versión de maven 3.6.3 |
| 31 | + - El comando para realizar una `build` con maven: `mvn clean package` |
| 32 | + - El comando para realizar los tests con maven: `mvn verify` |
| 33 | + - Cuando despleguemos la aplicación en local, podemos comprobar su ejecución en: `http://localhost:8080` |
| 34 | + |
35 | 35 | En resumen, la `pipeline` de `CI/CD`, debe hacer la build de la aplicación generando los ficheros jar, hacer los tests de maven y finalmente dockerizar la app (el dockerfile ya se proporciona en el repo) y hacer un deploy en local.
|
36 |
| - |
37 |
| -### 2. Crear un usario nuevo y probar que no puede acceder al proyecto anteriormente creado |
38 |
| - |
39 |
| -* Añadirlo con el role `guest`, comprobar que acciones puede hacer. |
| 36 | + |
| 37 | +### 2. Crear un usuario nuevo y probar que no puede acceder al proyecto anteriormente creado |
| 38 | + * Añadirlo con el role `guest`, comprobar que acciones puede hacer. |
40 | 39 | * Cambiar a role `reporter`, comprobar que acciones puede hacer.
|
41 | 40 | * Cambiar a role `developer`, comprobar que acciones puede hacer.
|
42 | 41 | * Cambiar a role `maintainer`, comprobar que acciones puede hacer.
|
43 |
| - |
| 42 | + |
44 | 43 | * **Nota** (acciones a probar):
|
45 |
| - - Commit |
46 |
| - - Ejecutar pipeline manualmente |
47 |
| - - Push and pull del repo |
48 |
| - - Merge request |
49 |
| - - Acceder a la administracion del repo |
50 |
| - |
| 44 | + - Commit |
| 45 | + - Ejecutar pipeline manualmente |
| 46 | + - Push and pull del repo |
| 47 | + - Merge request |
| 48 | + - Acceder a la administración del repo |
| 49 | + |
51 | 50 | ### 3. Crear un nuevo repositorio, que contenga una pipeline, que clone otro proyecto, springapp anteriormente creado. Realizarlo de las siguientes maneras:
|
52 |
| - |
53 |
| -* Con el método de CI job permissions model |
54 |
| - - ¿Que ocurre si el repo que estoy clonando no estoy cómo miembro? |
55 |
| - |
56 |
| -> Pista: https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html (Dependent Repositories) |
57 |
| - |
58 |
| -* Con el método deploy keys |
59 |
| - - Crear deploy key en el repo springapp y poner solo lectura |
60 |
| - - Crear pipeline que usando la deploy key |
61 | 51 |
|
62 |
| -> Pista: https://docs.gitlab.com/ee/ci/ssh_keys/ |
| 52 | +* Con el método de CI job permissions model |
| 53 | + - ¿Qué ocurre si el repo que estoy clonando no estoy cómo miembro? |
| 54 | + > Pista: https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html (Dependent Repositories) |
| 55 | + * Con el método deploy keys |
| 56 | + - Crear deploy key en el repo springapp y poner solo lectura |
| 57 | + - Crear pipeline que usando la deploy key |
| 58 | + > Pista: https://docs.gitlab.com/ee/ci/ssh_keys/ |
| 59 | + |
| 60 | + |
0 commit comments