Exploración de la entrega continua con Acciones de GitHub
Acciones de GitHub proporcionan el mecanismo para implementar flujos de trabajo de entrega de software mediante las funcionalidades de la plataforma de GitHub. Este sería el enfoque de CI/CD más óptimo para la organización en nuestro escenario de ejemplo, teniendo en cuenta sus planes para usar GitHub para su recorrido de DevOps. En esta unidad, obtendrá información sobre el uso de Acciones de GitHub para compilar y ejecutar flujos de trabajo de CI/CD.
¿Qué son las acciones de GitHub?
En el contexto de GitHub, el término acciones realmente tiene un significado dual. La primera ( acciones en mayúsculas) representa el servicio de GitHub, que proporcionó la capacidad de implementar flujos de trabajo de CI/CD. El segundo ( acciones en minúsculas) designa unidades reutilizables que se pueden incluir en flujos de trabajo para ofrecer una funcionalidad específica, como ejecutar scripts y ejecutables, compilar y cargar artefactos, o configurar el acceso a una suscripción de Azure.
¿Cuáles son los componentes principales de Acciones de GitHub?
Los componentes clave de Acciones de GitHub incluyen:
- flujo de trabajo: una secuencia de pasos almacenados en un archivo con formato YAML. Los flujos de trabajo ejecutan los pasos una vez que se desencadenan manualmente o (con más frecuencia) automáticamente mediante actividades relacionadas con el repositorio, como envíos o fusiones de ramas.
- job: un elemento superior de un flujo de trabajo. Los trabajos dentro de un flujo de trabajo se pueden ejecutar en paralelo o secuencialmente.
- step: un elemento principal dentro de una tarea. Cada paso es una tarea o acción que realiza una actividad específica, como ejecutar un script o crear un artefacto.
- action: una actividad precompilada o personalizada desarrollada (como se mencionó anteriormente). GitHub proporciona un marketplace donde puede encontrar una amplia gama de acciones precompiladas.
- variable: un valor con nombre que permite almacenar y reutilizar datos en los pasos de un flujo de trabajo. Puede crear sus propias variables personalizadas o usar cualquiera de las variables de entorno predeterminadas predefinidas establecidas automáticamente dentro de cada flujo de trabajo.
- secret: una variable cifrada que se puede usar para almacenar datos confidenciales.
Creación de un flujo de trabajo de Acciones de GitHub
Para crear un flujo de trabajo de Acciones de GitHub, siga estos pasos:
- Cree un repositorio. Para implementar el flujo de trabajo de Acciones de GitHub, necesitará una cuenta de GitHub y un repositorio. De forma predeterminada, un nuevo repositorio incluye la rama predeterminada, que normalmente se denomina principal.
- Cree un directorio .github/workflows. Los flujos de trabajo de Acciones de GitHub deben residir en el directorio .github/workflows en la raíz del repositorio.
- Cree un archivo YAML. El flujo de trabajo de Acciones de GitHub tiene el formato YAML. Su nombre es arbitrario, pero se espera que la extensión se establezca en .yml.
- Defina el flujo de trabajo en el archivo YAML y guarde los cambios. El archivo YAML debe incluir la definición del flujo de trabajo.
- Confirme el archivo guardado en el repositorio. Para finalizar los cambios de flujo de trabajo, debe ejecutar la confirmación, como con cualquier archivo que forme parte del repositorio. Si decide crear un flujo de trabajo en el equipo local (en lugar de usar la interfaz web de GitHub), clonaría el repositorio después de crearlo, aplicar y confirmar los cambios localmente y, a continuación, insertarlos en GitHub.
Este es un ejemplo sencillo de un flujo de trabajo de Acciones de GitHub que muestra un mensaje Hello from GitHub Actions! una vez ejecutado.
name: Simple GitHub Actions workflow
on: [push]
jobs:
say_hello:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Run Build Script
run: |
echo "Hello, GitHub Actions!"
La primera línea del flujo de trabajo define su nombre, que se muestra en la pestaña Acciones del repositorio en la interfaz web de GitHub. La on: [push] línea designa el evento, que desencadena la ejecución del flujo de trabajo (en este caso, un push a cualquier rama del repositorio donde reside el workflow).
El flujo de trabajo consta de un único trabajo denominado say_hello, como se indica en el contenido que sigue a la jobs: línea. La línea siguiente (runs-on: ubuntu-latest) determina el tipo de sistema operativo que se debe usar para ejecutar el trabajo. La elección depende de las tareas que contiene el trabajo y, en este caso, el trabajo también se ejecutaría en cualquier sistema operativo basado en Windows.
El trabajo consta de dos pasos, como se indica en el contenido que sigue a la steps: línea. La sintaxis de paso admite un atributo de nombre opcional, que puede ayudar a comprender el propósito del paso al revisar las ejecuciones del flujo de trabajo. El resto de la sintaxis depende del tipo de acción que un paso determinado está destinado a llevar a cabo. En este ejemplo, el primer paso consiste en extraer el repositorio actual (que descarga el contenido del repositorio en el sistema donde se ejecuta el trabajo), mientras que el segundo ejecuta el comando echo, que muestra un mensaje amigable.
Para integrar la funcionalidad de CI/CD en flujos de trabajo de Acciones de GitHub, agregaría una serie de pasos (en uno o varios trabajos) que realizan acciones automatizadas de compilación, prueba e implementación. Una vez desencadenada la ejecución del flujo de trabajo, puede realizar un seguimiento de su progreso; para ello, vaya a la pestaña "Acciones" del repositorio de GitHub.
Nota:
Tendrá la oportunidad de trabajar con ejemplos más significativos de flujos de trabajo de Acciones de GitHub que ilustran la integración de CI/CD en el laboratorio de este módulo.