Introducció a Travis CI

Travis CI és una eina de CI/CD basada en el núvol que permet als desenvolupadors automatitzar la construcció i les proves del seu codi. És especialment popular entre els projectes de codi obert i ofereix una integració senzilla amb GitHub.

Conceptes Clau

  • Integració amb GitHub: Travis CI es connecta directament amb els repositoris de GitHub per detectar canvis i iniciar construccions automàticament.
  • Fitxer de Configuració .travis.yml: La configuració de Travis CI es defineix en un fitxer YAML que es col·loca a l'arrel del repositori.
  • Entorns de Construcció: Travis CI proporciona entorns de construcció preconfigurats per a diferents llenguatges de programació.
  • Construccions Paral·leles: Permet executar múltiples construccions en paral·lel per reduir el temps total de construcció.

Configuració de Travis CI

Pas 1: Registre i Integració amb GitHub

  1. Registra't a Travis CI utilitzant el teu compte de GitHub.
  2. Autoritza Travis CI a accedir als teus repositoris de GitHub.
  3. Activa Travis CI per al repositori desitjat des del tauler de control de Travis CI.

Pas 2: Crear el Fitxer .travis.yml

El fitxer .travis.yml és el cor de la configuració de Travis CI. Aquí tens un exemple bàsic per a un projecte en Node.js:

language: node_js
node_js:
  - "14"
script:
  - npm install
  - npm test

Explicació del Fitxer .travis.yml

  • language: Especifica el llenguatge de programació del projecte.
  • node_js: Defineix la versió de Node.js a utilitzar.
  • script: Llista de comandes a executar durant la construcció.

Pas 3: Provar la Configuració

  1. Fes un commit del fitxer .travis.yml al teu repositori.
  2. Travis CI detectarà el nou fitxer i iniciarà una construcció automàticament.
  3. Pots veure l'estat de la construcció al tauler de control de Travis CI o a la pàgina del repositori a GitHub.

Funcionalitats Avançades

Matrius de Construcció

Les matrius de construcció permeten provar el codi en múltiples entorns. Aquí tens un exemple per a un projecte en Python:

language: python
python:
  - "3.6"
  - "3.7"
  - "3.8"
script:
  - pytest

Desplegament Automàtic

Travis CI pot automatitzar el desplegament del teu codi a diferents serveis. Aquí tens un exemple per desplegar a Heroku:

language: node_js
node_js:
  - "14"
script:
  - npm install
  - npm test
deploy:
  provider: heroku
  api_key:
    secure: YOUR_ENCRYPTED_API_KEY
  app: your-app-name

Notificacions

Pots configurar Travis CI per enviar notificacions sobre l'estat de les construccions:

notifications:
  email:
    recipients:
      - [email protected]
    on_success: change
    on_failure: always

Exercici Pràctic

Objectiu

Configurar Travis CI per a un projecte de Node.js que inclogui proves automatitzades i desplegament a Heroku.

Passos

  1. Crear el Fitxer .travis.yml:

    • Defineix el llenguatge i la versió de Node.js.
    • Afegeix les comandes per instal·lar dependències i executar proves.
    • Configura el desplegament a Heroku.
  2. Provar la Configuració:

    • Fes un commit del fitxer .travis.yml i verifica que Travis CI inicia la construcció.
    • Revisa els logs de construcció per assegurar-te que tot funciona correctament.

Solució

language: node_js
node_js:
  - "14"
script:
  - npm install
  - npm test
deploy:
  provider: heroku
  api_key:
    secure: YOUR_ENCRYPTED_API_KEY
  app: your-app-name
notifications:
  email:
    recipients:
      - [email protected]
    on_success: change
    on_failure: always

Errors Comuns i Consells

  • Error de Sintaxi en .travis.yml: Utilitza un validor de YAML per assegurar-te que el fitxer està ben format.
  • Problemes d'Autenticació amb Heroku: Assegura't que la clau API està correctament encriptada i que tens permisos suficients per desplegar.
  • Temps d'Espera Excedit: Si les construccions triguen massa, considera optimitzar els teus scripts o utilitzar construccions paral·leles.

Conclusió

Travis CI és una eina potent i flexible per a la integració i desplegament continu. Amb una configuració senzilla, pots automatitzar la construcció, proves i desplegament del teu codi, millorant així la qualitat i velocitat del desenvolupament.

© Copyright 2024. Tots els drets reservats