Ejercicio 6. Reutilización de workflows y creación de releases
De Wiki de EGC
Revisión del 12:38 14 dic 2021 de Ajramirez (discusión | contribuciones) (Página creada con «Página_Principal -> 2021/2022 -> Prácticas - 21/22 -> [Integración_Continua_y_Despliegue_Continuo_21-22] = Reutilización de workflows y creación de releas...»)
Página_Principal -> 2021/2022 -> Prácticas - 21/22 -> [Integración_Continua_y_Despliegue_Continuo_21-22]
Reutilización de workflows y creación de releases
En GitHub puede hacerse crearse una Release de un repositorio en https://github.com/<tu org>/<tu repo>/releases. Para automatizar el proceso de generación de una release a partir de un tag (siempre y cuando dicho código haya pasado las pruebas) podemos combinar el workflow django.yml con un pasos posterior de release. Para ello:
- Cree un nuevo workflow en la carpeta de los workflows con el siguiente contenido:
name: release
on:
push:
tags:
- '*'
jobs:
buildTest:
uses: <tu org>/<tu repo>/.github/workflows/django.yml@master
secrets:
CODACY_PROJECT_TOKEN: ${{secrets.CODACY_PROJECT_TOKEN}}
HEROKU_API_KEY: ${{secrets.HEROKU_API_KEY}}
release:
needs: buildTest
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Release
uses: softprops/action-gh-release@v1
- Dado que las variables de entorno y secrets no se comparten entre workflows, hay que pasarlos explicitamente de un worflow al workflow reutilizable. Para convertir el workflow django.yml en reutilizable tenemos que modifcarlo añadiendo:
...
on:
push:
branches:
- master
workflow_call:
secrets:
CODACY_PROJECT_TOKEN:
required: true
HEROKU_API_KEY:
...
Hagamos un push de los cambios.
- ¿Cuántos workflows se dispara?
- ¿Se observa algún comportamiento diferente en el workflow django.yml?
Para crear un nuevo tag hagamos:
git tag -a v1.0.0 -m “mensaje para añadir al tag que también aparecerá en la release”
git push origin v1.0.
- ¿Cuántos workflows se lanzan?
- ¿Cuántos jobs se ejecutan del nuevo worflow?
- ¿Se crea correctamente la release?