Utilizando la acción previa en un flujo de Github Actions

Los flujos de trabajo de Github son un conjunto de procesos donde nosotros definimos los diferentes pasos que deben de ejecutar y lo harán en el momento que indiquemos, como: al mezclar una rama a la principal, al crear una revisión de código, etc.

Vamos a ver como podemos crear uno y utilizar la acción que hemos creado anteriormente.

Manos a la obra

Para que Github detecte nuestro flujo de trabajo, debemos de crear la carpeta .github en el directorio raiz, y dentro de ella, otra carpeta llamada workflows donde pondremos todos los flujos de trabajo que necesite nuestro proyecto.

Vamos a crear el fichero load-test.workflow.yml y en lugar de ejecutar este flujo cuando se mezcle el código a la rama principal o al crear una Pull Request, vamos a ejecutarlo manualmente:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:

Este proceso o job, lo vamos nombrar como load-test y lo ejecutaremos en una máquina virtual con el sistema operativo ubuntu en su última versión:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:

+ jobs:
+   load-test:
+     runs-on: ubuntu-latest

Como primer paso, necesitamos clonar el repositorio en dicha máquina para tener acceso al código fuente. Podemos utilizar una acción ya predefinida por el propio equipo de Github que se llama actions/checkout@v2 para tal fin:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:

jobs:
  load-test:
    runs-on: ubuntu-latest
+   steps:
+     - name: Clonar repositorio
+       uses: actions/checkout@v2

A continuación, utilizamos nuestra acción para ejecutar pruebas de carga con Apache Bench:

./.github/workflows/load-test.workflow.yml

name: Pruebas de carga

on:
  workflow_dispatch:

jobs:
  load-test:
    runs-on: ubuntu-latest
    steps:
      - name: Clonar repositorio
        uses: actions/checkout@v2
+     - name: Ejecutar pruebas de carga
+       uses: ./load-test-action
+       with:
+         url: https://www.basefactor.com/
+         number-of-requests: 10
+         concurrency: 2

Por último, subimos todos los ficheros creados al repositorio de Github:

git add .
git commit -m "crear github action propia"
git push -u origin master

Ya podemos ejecutar manualmente el flujo en el repositorio de Github, en el apartado de Actions:

Resultados Apache Bench ejecutándolo en Github Actions

¿Te gusta el mundo Devops?

En Lemoncode impartimos un Bootcamp Devops Online, en él encontrarás todos los recursos necesarios: clases de los mejores profesionales del sector, tutorías en cuanto las necesites y ejercicios para desarrollar lo aprendido en los distintos módulos. Si quieres saber más puedes pinchar aquí para más información sobre este Bootcamp Devops.