Travis es un servicio online que permite que al hacer push en un repositorio Github se le haga CI (Integración Contínua), que cree un ambiente para correr las pruebas y luego se ejecuten ciertas acciones según se pase o no estas pruebas.
- Tener una cuenta en github (https://github.com/akobashikawa)
- Tener una cuenta en travis
- Autorizar a travis para conectarse a github
- En travis, entrar al profile (https://travis-ci.org/profile/akobashikawa). Mostrará una lista de nuestros repositorios (que se puede refrescar manualmente si es necesario) con un check para indicar si queremos configurarlo para CI.
Idea para una prueba simple
- Creo el repo dev https://github.com/akobashikawa/travis-test-dev
- Creo el repo prod https://github.com/akobashikawa/travis-test-prod
- Quiero que al hacer push en el repo dev, se le ejecute la CI. Si pasa los test, se haga un push automáticamente a prod.
.travis.yml
Coloco este archivo en el repo dev para indicar a travis las acciones a realizar.language: php php: - 5.5 sudo: required dist: trusty before_install: echo 'before install' before_script: - echo 'before script' - pwd - ls -a - git status script: phpunit Test.php after_success: - echo 'after success' - git remote add production https://{GH_REF} - git remote -v - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master > /dev/null 2>&1 after_script: echo 'after script'
Test.php
Es un test trivial.
class Test extends PHPUnit_Framework_TestCase { public function testOnePlusOne() { $this->assertEquals(1+1, 2); } }
Credenciales
Para poder hacer el push se necesita un password, o una clave personal que se puede generar en github (https://github.com/settings/tokens). Declaro esa clave en los settings de travis como GH_TOKEN y en GH_REF la ubicación del repo dev, para más comodidad.