Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IV-21-22] Objetivo 5 #35

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ on:
branches:
- main
paths:
- '**.go'
- Dockerfile
- go.mod
pull_request:
branches:
- main
paths:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si usas el contenedor para CI, ¿qué pasa si estás haciendo cambios en una rama?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No llego a comprender porque no es correcto. Es decir, entiendo que cuando hago push y se modifica el fichero Dockerfile o go.mod se va a lanzar los jobs pero creo que es correcto la parte del pull_request el problema con como lo tengo montando sería que solo funciona si hago yo ese PR, porque si lo hace otra persona no va a tener mis credenciales para poder ejecutar la parte de jobs... no? Si estoy haciendo cambios en una rama y quiero crear una imagen cuando actualice esa rama pondría algo como... on: push: branches: - '*' y ya cada vez que haga push sea cual sea la rama, se ejecutará la publicación de la imagen, correcto?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¿Cómo se está modificando el contenedor si estás haciendo push a una rama aquí? ¿Entiendes eso? Siempre vas a desarrollar en una rama...

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vale, lo he modificado. Se publicará una imagen si se hace push y se modifica el fichero Dockerfile y go.mod. La parte de pull_request y branches ha sido eliminada. Asi entiendo que se crea la imagen correctamente este en la rama que este.

- Dockerfile
- go.mod

# Especificamos lo que queramos que suceda dentro de nuestro flujo de trabajo.
jobs:
Expand Down
15 changes: 11 additions & 4 deletions docs/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,24 @@ Se tiene que crear un Github Action que crea la imagen del contenedor y la publi
```yaml
on:
push:
branches: # Indicamos la rama de nuestro repositorio que queremos analizar.
branches:
- main
paths: # Indicamos los ficheros que tiene que analizar para realizar la publicación de la imagen.
- '**.go' # Si estos ficheros no se han modificado no se realiza la publicación
- Dockerfile # Si estos ficheros no se han modificado no se realiza la publicación
- go.mod
pull_request:
branches:
- main
paths:
- Dockerfile
- go.mod

```
* Bajo mi punto de vista, si se realiza un push a la rama principal y hemos modificado algún fichero .go o el go.mod deberíamos de actualizar la imagen ya que habremos añadido código que afectará a la lógica de negocio de nuestro proyecto. Otra opción puede ser añadir `path-ignore` e incluir los ficheros, por ejemplo, de documentación, con esto conseguiriamos que si se edita un fichero de documentación y se hace push a la rama principal no se actualice la imagen en docker hub.
* Cuando hacemos merge desde un pull request a la rama principal, en la asignatura significa que siempre se van a realizar cambios respecto a la lógica de negocio de nuestro proyecto, es decir, vamos a estar realizando cambios importantes en nuestro proyecto por esto pienso que para este repositorio concreto si hacemos merge de un pull request a la rama main se ejecute la publicación de la imagen.

La imagen depende de las dependencias y del Dockerfile, por tanto:

* Se indica que cuando se haga un push bien a la rama main o bien se modifiquen las dependencias del proyecto, go.mod, o se modifique el Dockerfile se generará una imagen de nuestro proyecto.
* Cuando se realice un pull request hacia la rama main o bien se modique el Dockerfile o go.mod, se generará una nueva imagen.

2. Creo una variable para especificar el repositorio del que queremos crear y publicar una imagen.
```yaml
Expand Down