Consejos Tecnológicos

Usa acciones de Github para automatizar

Acciones de GitHub es una herramienta relativamente nueva que le permite configurar flujos de trabajo de CI / CD utilizando archivos de configuración directamente en el repositorio de GitHub.

Anteriormente, si deseaba automatizar las pruebas, la compilación o la implementación, tenía que utilizar servicios como Circle CI y Travis o crear sus propios scripts. Sin embargo, con Actions, obtiene soporte de primera clase y equipo completo para flujos de trabajo automatizados.

Automatización para principiantes

La automatización se refiere a las áreas de aplicación con una entrada manual mínima. Esto incluye aplicaciones personales como automatización de procesos comerciales (BPA), automatización de TI, domótica y otras tecnologías similares.

Flujo de trabajo CI / CD

La integración continua y la implementación continua se abrevian como CI / CD. Ambos son métodos de desarrollo de software que permiten a los equipos colaborar en proyectos de manera oportuna, eficiente y sin errores.

El concepto de integración continua es que cuando los miembros del equipo trabajan en código en múltiples ramas de git, el código se fusionará en una rama de trabajo, y luego la rama se construirá y probará utilizando un flujo de trabajo automatizado. Esto ayuda a garantizar que el código de todos esté bien probado y pueda funcionar en conjunto correctamente.

La implementación continua va un paso más allá al automatizar el proceso de implementación. El método CI automatiza las pruebas y la compilación, mientras que la implementación continua automatiza la implementación del proyecto en el entorno.

El objetivo es que una vez que el código esté construido y probado, esté en un estado de implementación y debería poder implementarse.

Introducción a las operaciones de GitHub

Las acciones de GitHub le permiten crear rutinas de ciclo de vida de desarrollo de software únicas a partir de los repositorios de GitHub. Estos flujos de trabajo constan de muchas tareas denominadas operaciones, que se pueden ejecutar automáticamente en respuesta a desencadenantes específicos.

Esto le permite incorporar capacidades de integración continua (CI) y despliegue continuo (CD) y varias otras funciones directamente en su repositorio.

Esta figura muestra cómo usar las acciones de GitHub para automatizar los scripts de prueba de software. El evento inicia el flujo de trabajo que contiene el trabajo. Luego, el trabajo usa pasos para controlar el orden en que se realizan las operaciones. Estos comandos le permiten automatizar las pruebas de software.

Beneficios para los desarrolladores:

Antes de profundizar en los detalles técnicos, hablemos sobre por qué los desarrolladores deberían preocuparse por las acciones de GitHub y los beneficios que aportan:

Prueba de contenedores múltiples:

Al agregar soporte para Docker y archivos de composición de Docker a su flujo de trabajo, GitHub Actions le permite probar configuraciones de múltiples contenedores.

Construir en GitHub:

GitHub Actions está completamente integrado con GitHub, por lo que no es necesario un sitio web separado. Esto significa que se puede administrar utilizando sus otras funciones relacionadas con el repositorio (como solicitudes de extracción y problemas).

Varias plantillas de CI:

GitHub proporciona una variedad de plantillas para varias configuraciones de CI (integración continua), que es relativamente fácil de comenzar. También puede desarrollar su propia plantilla y luego publicarla en GitHub Marketplace como una acción.

Gran plan gratuito:

El funcionamiento de cualquier repositorio de código abierto es completamente gratuito y proporciona 2000 minutos de compilación gratuitos por mes para todos sus repositorios privados, lo que equivale a la mayoría de los servicios gratuitos de CI / CD. Si esto no es suficiente para cumplir con sus requisitos, puede elegir otro plan o seguir una ruta autohospedada.

Componentes y flujo de trabajo:

A continuación, se muestra una lista de los componentes de Acciones de GitHub que ejecutan el trabajo juntos:

Proceso de trabajo

El flujo de trabajo es el proceso mediante el cual agrega al repositorio. Un flujo de trabajo consta de uno o más trabajos que pueden programarse o activarse mediante eventos. Este flujo de trabajo se puede usar para crear, probar, empaquetar, publicar o implementar proyectos de GitHub. Para obtener más información sobre cómo hacer referencia a un flujo de trabajo en otro flujo de trabajo, consulte «Reutilización de un flujo de trabajo».

acción

Las operaciones son comandos únicos que se integran en pasos para formar un trabajo. La parte de construcción móvil más simple del flujo de trabajo es la operación. Puede desarrollar sus propias acciones o utilizar acciones creadas por la comunidad de GitHub. Debe agregar la acción como un paso para usarla en el proceso.

ritmo:

Los pasos son tareas independientes que pueden ejecutar comandos en un trabajo. Una acción o un comando de shell se puede considerar un paso. Cada paso de la tarea se ejecuta en el mismo corredor, lo que permite que las operaciones del trabajo intercambien datos.

evento:

Un evento es una actividad única que inicia un flujo de trabajo. Por ejemplo, cuando alguien envía una confirmación a un repositorio o crea un problema o una solicitud de extracción, la actividad puede provenir de GitHub. Cuando ocurre un evento externo, también puede usar el repositorio para programar un webhook para activar el proceso. Para obtener una lista completa de eventos que se pueden usar para desencadenar un flujo de trabajo, consulte Eventos que desencadenan un flujo de trabajo.

Trabajo:

Un trabajo es una serie de pasos que se ejecutan en el mismo corredor. De forma predeterminada, un flujo de trabajo con varios trabajos ejecutará estos trabajos en paralelo. También puede configurar canalizaciones para ejecutar trabajos en un orden específico. Por ejemplo, un flujo de trabajo puede incluir dos tareas consecutivas de compilación y prueba de código, y el trabajo de prueba depende del estado del trabajo de compilación. Si la tarea de compilación falla, el trabajo de prueba no se ejecutará.

Corredor:

El corredor es el servidor que ejecuta la aplicación de ejecución de acciones de GitHub. Puede utilizar un corredor alojado en GitHub o alojar su propio corredor. Ejecute el programa para buscar trabajos abiertos, ejecute uno a la vez y envíe el progreso, los registros y los resultados a GitHub. El corredor alojado por GitHub se ejecuta en Ubuntu Linux, Microsoft Windows y macOS, y cada tarea del flujo de trabajo se ejecuta en un entorno virtual independiente. Luego ejecute el programa y espere a que se ejecute el trabajo abierto. Ejecutan la actividad del trabajo después de recoger el trabajo y envían el progreso y los resultados a GitHub.

Crear archivo de acción

Los eventos, trabajos y pasos en las acciones de GitHub se definen mediante la sintaxis YAML y tienen Una o .yaml Extensión de archivo.Estos archivos YAML se guardan en un archivo llamado .GitHub / flujo de trabajo En su repositorio de código.

En su repositorio, puede crear un flujo de trabajo de muestra para realizar una serie de tareas al enviar código. Acciones de GitHub verifica el código enviado, instala las dependencias de software y ejecuta bats -v en este flujo de trabajo.

paso 1: crear .github / flujo de trabajo / Un directorio en el repositorio para contener sus archivos de flujo de trabajo.

Paso 2: Cree un nuevo archivo llamado aprendizajegithub-actions.yml dentro .github / flujo de trabajo / Directory y agregue el siguiente código.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]
      - uses: actions/[email protected]
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Paso 3: Envíe estos cambios e impleméntelos en su repositorio de GitHub.

Su nuevo archivo de flujo de trabajo de acción de GitHub ahora está instalado en su repositorio y se ejecutará automáticamente cuando envíe cambios al repositorio.

Esta sección presenta cada línea del ejemplo de introducción para ayudarlo a comprender cómo usar la sintaxis YAML para crear un archivo de flujo de trabajo:

nombre:

El nombre del flujo de trabajo que aparece en la página de acción de Github. Si deja este campo en blanco, se utiliza el nombre del archivo.

existe:

La palabra clave on especifica el evento de Github que provocó la ejecución del flujo de trabajo. Puede proporcionar un diagrama de configuración de un solo evento, matriz de eventos o flujo de trabajo de programación.

Trabajo:

Una ejecución de flujo de trabajo consta de uno o más trabajos. El trabajo describe las funciones que se ejecutarán en el flujo de trabajo y se ejecutarán en paralelo de forma predeterminada.

Verifique la versión de murciélago:

El nombre del trabajo check-bats-version guardado en la sección del trabajo.

continuar operando:

La palabra clave run-on le permite especificar el sistema operativo (sistema operativo) en el que debe ejecutarse el flujo de trabajo, como la última versión de Ubuntu.

ritmo:

Todas las etapas que se ejecutan en la tarea check-bats-version están agrupadas. Cada elemento de esta sección es una operación o comando de shell diferente.

usar:

La palabra clave using indica al trabajo que obtenga la versión 2 de la operación comunitaria denominada actions / checkout @ v2. Esta acción verifica su repositorio y lo descarga al corredor, lo que le permite realizar acciones en el código (como herramientas de prueba).

Configure las acciones de GitHub:

Nuestro flujo de trabajo se verá así:

Usa acciones de Github para automatizar

Para usar las acciones de GitHub, primero debemos construir un .github / flujo de trabajo carpeta. Debemos desarrollar nuestro flujo de trabajo en esta carpeta. Comencemos por hacer push.yml. Esperamos que nuestro flujo de trabajo sea el siguiente:

Realice estas tareas en el orden especificado durante cada envío:

  1. repositorio de clones de git
  2. Ejecute npm install
  3. Ejecute npm lint
  4. Ejecutar prueba npm
  5. Crear imagen de ventana acoplable
  6. Iniciar sesión en Docker Hub
  7. Empuje la imagen al concentrador de la ventana acoplable

Por lo tanto, para ejecutar cada una de estas tareas en contenedores Docker, debemos crear un Dockerfile para cada una de estas operaciones y ejecutar comandos en estos contenedores. Por supuesto, esto requiere mucho tiempo y es propenso a errores. Debido a que las acciones de GitHub son código, podemos reutilizarlas, editarlas y bifurcarlas como cualquier otro código.

nuestro Push.yml El archivo tiene este aspecto:

on: push
name: npm build, lint, test and publish
jobs:
  build-and-publish:
    name: build and publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/[email protected]
      - name: npm install
        uses: actions/[email protected]
        with:
          args: install
      - name: npm test
        uses: actions/[email protected]
        with:
          args: run test
      - name: npm lint
        uses: actions/[email protected]
        with:
          args: run lint
      - name: docker build
        uses: actions/docker/[email protected]
        with:
          args: build -t ishanjainijs/github-action-example-node .
      - name: docker login
        uses: actions/docker/[email protected]
        env:
          DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
      - name: docker push
        uses: actions/docker/[email protected]
        with:
          args: push abhinavdhasmana/github-action-example-node

Generalizar

Las acciones de GitHub han madurado mucho en los últimos años, pero aún no lo suficientemente maduras. GitHub Actions tiene la mejor API de todas las plataformas de git, junto con la tecnología única de acciones de desarrollo de JavaScript, y cuenta con el respaldo de la comunidad de git más grande del mundo. No hay duda de que GitHub Actions tiene la capacidad de dominar todo el juego de CI / CD. Pero no solo eso.

Con nuestra capacidad para diseñar nuevos flujos de trabajo personalizados, no podemos lograr la automatización. GitHub también proporciona un mercado donde puedes encontrarlo.

Si quieres ir más allá, ¡incluso puedes hacerlo tú mismo! Esto le permite crear scripts para configurar el flujo de trabajo para completar cualquier tarea requerida por su proyecto.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba