La integració contínua (CI) és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una construcció automàtica (incloent proves) per detectar errors tan aviat com sigui possible. En aquest tema, aprendrem com implementar CI per a un projecte GraphQL.

Objectius del tema

  • Entendre els conceptes bàsics de la integració contínua.
  • Configurar un pipeline de CI per a un projecte GraphQL.
  • Automatitzar proves i desplegaments.

Conceptes bàsics de la integració contínua

Beneficis de la integració contínua

  • Detecció primerenca d'errors: Les proves automàtiques ajuden a identificar errors immediatament després de cada integració.
  • Millora de la qualitat del codi: La integració contínua fomenta la pràctica de proves freqüents, millorant la qualitat del codi.
  • Desplegament més ràpid: Amb un pipeline de CI ben configurat, el codi es pot desplegar de manera més ràpida i segura.

Components clau de la integració contínua

  • Repositori de codi: Un sistema de control de versions (com Git) on es guarda el codi.
  • Servidor de CI: Una eina que automatitza la construcció i les proves del codi (com Jenkins, Travis CI, CircleCI).
  • Scripts de construcció i proves: Scripts que defineixen com construir i provar el projecte.

Configuració d'un pipeline de CI per a un projecte GraphQL

Pas 1: Configuració del repositori de codi

Assegura't que el teu projecte GraphQL estigui en un repositori de codi, com GitHub, GitLab o Bitbucket.

Pas 2: Elecció d'una eina de CI

Hi ha diverses eines de CI disponibles. En aquest exemple, utilitzarem GitHub Actions per la seva integració directa amb GitHub.

Pas 3: Creació del workflow de GitHub Actions

Crea un fitxer .github/workflows/ci.yml al teu repositori amb el següent contingut:

name: CI Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test

Explicació del workflow

  • on: Defineix quan s'executarà el workflow (en aquest cas, en cada push o pull request a la branca main).
  • jobs: Defineix els treballs que es realitzaran.
    • build: El nom del treball.
      • runs-on: Defineix el sistema operatiu en el qual s'executarà el treball (en aquest cas, ubuntu-latest).
      • steps: Defineix els passos del treball.
        • Checkout code: Utilitza l'acció actions/checkout per obtenir el codi del repositori.
        • Set up Node.js: Configura Node.js a la versió especificada.
        • Install dependencies: Instal·la les dependències del projecte.
        • Run tests: Executa les proves definides en el projecte.

Automatització de proves i desplegaments

Proves automàtiques

Les proves automàtiques són essencials per a la integració contínua. Assegura't de tenir un bon conjunt de proves unitàries i d'integració per al teu projecte GraphQL.

Desplegament automàtic

Després de passar totes les proves, pots configurar el pipeline de CI per desplegar automàticament el teu servidor GraphQL. Aquí tens un exemple de com afegir un pas de desplegament al workflow de GitHub Actions:

- name: Deploy to Heroku
  env:
    HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
  run: |
    git remote add heroku https://git.heroku.com/<your-app-name>.git
    git push heroku main

Explicació del pas de desplegament

  • Deploy to Heroku: El nom del pas.
  • env: Defineix les variables d'entorn necessàries per al desplegament (en aquest cas, la clau API de Heroku).
  • run: Defineix els comandos per desplegar l'aplicació a Heroku.

Exercici pràctic

Objectiu

Configurar un pipeline de CI per a un projecte GraphQL utilitzant GitHub Actions.

Passos

  1. Crea un repositori de codi per al teu projecte GraphQL.
  2. Configura el workflow de GitHub Actions seguint els passos descrits anteriorment.
  3. Afegeix proves unitàries al teu projecte.
  4. Configura el desplegament automàtic a una plataforma com Heroku.

Solució

La solució a aquest exercici es troba en el codi del workflow de GitHub Actions proporcionat anteriorment. Assegura't de substituir <your-app-name> pel nom de la teva aplicació a Heroku.

Resum

En aquest tema, hem après els conceptes bàsics de la integració contínua i com configurar un pipeline de CI per a un projecte GraphQL utilitzant GitHub Actions. Hem vist com automatitzar proves i desplegaments per millorar la qualitat del codi i accelerar el procés de desenvolupament. Amb aquests coneixements, estàs preparat per implementar CI en els teus projectes GraphQL i beneficiar-te dels seus avantatges.

© Copyright 2024. Tots els drets reservats