Skip to content

Commit 61cb440

Browse files
authored
Merge pull request #211 from Lemoncode/feature/cicd-exercises-2023
Update after CI/CD lab class
2 parents ef6c96c + 0da21dc commit 61cb440

2 files changed

Lines changed: 32 additions & 16 deletions

File tree

03-cd/03-github-actions/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ There are some limits whe using GitHub-hosted runners.
8888
| Team | 60 | 5 |
8989
| Enterprise Cloud | 1000 | 50 |
9090
91-
## Refernces
91+
## References
9292
9393
- [Understanding Github Actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions)
9494
- [Workflow syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)

03-cd/exercises/README.md

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ Para superar el módulo debéis entregar como mínimo:
66
* La parte obligatoria de los ejercicios de GitHub Actions.
77
* Uno de los dos ejercicios opcionales de la parte de GitHub Actions
88

9-
## Ejercios Jenkins
9+
## Ejercicios Jenkins
1010

1111
### 1. CI/CD de una Java + Gradle - OBLIGATORIO
1212

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:
1414

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`
1818

1919
Para ejecutar Jenkins en local y tener las dependencias necesarias disponibles podemos contruir una imagen a partir de [este Dockerfile](./jenkins-resources/gradle.Dockerfile)
2020

2121
### 2. Modificar la pipeline para que utilice la imagen Docker de Gradle como build runner - OBLIGATORIO
2222

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
2424
* Como plugins deben estar instalados `Docker` y `Docker Pipeline`
2525
* Usar la imagen de Docker `gradle:6.6.1-jre14-openj9`
2626

@@ -34,7 +34,7 @@ Para ejecutar Jenkins en local y tener las dependencias necesarias disponibles p
3434
* `maven:build` - En este `stage` el código de la aplicación se compila con [maven](https://maven.apache.org/).
3535
* `maven:test` - En este `stage` ejecutamos los tests utilizando [maven](https://maven.apache.org/).
3636
* `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.
3838

3939
* **Pistas**:
4040
* Utiliza la versión de maven 3.6.3
@@ -63,20 +63,20 @@ Acciones a probar:
6363

6464
Relizar de las siguientes maneras:
6565

66-
* **Con el método de CI job permissions model**
66+
* **Con el método de CI job token**
6767
* ¿Qué ocurre si el repo que estoy clonando no estoy cómo miembro?
6868

69-
> Pista: https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html (Dependent Repositories)
69+
> Pista: https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html
7070
7171
* **Con el método deploy keys**
7272
* 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
7474

7575
> Pista: https://docs.gitlab.com/ee/ci/ssh_keys/
7676
7777
## Ejercicios GitHub Actions
7878

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
8080

8181
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.
8282

@@ -85,18 +85,34 @@ Después crea un nuevo workflow que se dispare cuando haya cambios en el proyect
8585
* Build del proyecto de front
8686
* Ejecutar los unit tests
8787

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
8989

9090
Crea un nuevo workflow que se dispare manualmente y haga lo siguiente:
9191

9292
* Crear una nueva imagen de Docker
9393
* 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)
9494

95-
### Ejercicio 3. Crea un workflow que ejecute tests e2e - OPCIONAL
95+
### 3. Crea un workflow que ejecute tests e2e - OPCIONAL
9696

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.
9898

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
100116

101117
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).
102118

0 commit comments

Comments
 (0)