Desarrollo ágil

Integración/despliegue continuo

jj.github.io/curso-tdd/temas/CI

✓ TODO

□ ¿Los milestones internos son productos mínimamente viables?

□ ¿Se han integrado tests en el gestor de tareas?

En busca del botón rojo de despliegue

Ganchos en la red

Usando hooks conectados a los repositorios.

Configuración generalmente en YAML

Infraestructura como código

Travis

	language: node_js
	node_js:
	  - "10"
	  - "11"
	  - "12"
	before_install:
	  - npm install -g mocha
        install:
	  - cd src; npm install .
	script: cd src; mocha

Github actions FTW

name: "Test Nim"
on:
  push:
    paths:
      - "ejemplos/nim/**"
  pull_request:
    paths:
      - "ejemplos/nim/**"
jobs:
  test-nim:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: jiro4989/setup-nim-action@v1
        with:
          nim-version: '1.4.0' # default is 'stable'
      - run: cd ejemplos/nim && nimble test -Y

F en F.I.R.S.T.

No perder el estado de flow

Infraestructura como código

⇒ Mucho tiempo perdido con dependencias

Solución ①: fatpack

language: minimal
script:
  - prove -c t/proyecto.t
                            

Solución ②: Docker

FROM jjmerelo/perl-test-text
LABEL version="1.0" maintainer="JJ Merelo <jjmerelo@GMail.com>" perl5version="5.22"

WORKDIR /home/install
ADD cpanfile .
RUN apt-get update && apt-get install -y git
RUN cpanm --installdeps .

VOLUME /test
WORKDIR /test

ENTRYPOINT cp /home/install/data/*.dic /home/install/data/*.aff /test && prove -I/usr/lib -c  

Y en Travis...

language:
  - minimal

install:
  - docker pull jjmerelo/p5-devqagrx:latest
  - docker images

script:
  - docker run -t -v  $TRAVIS_BUILD_DIR:/test jjmerelo/p5-devqagrx:latest

O también

Usar cachés

Paralelizar tests

Trocear y repartir

✓ TODO hito 13

Instalar sistema de CI y pasar los tests

Se usará el checks API para comprobarlo.