Basic TravisCI Information

Apoya a HackTricks

Acceso

TravisCI se integra directamente con diferentes plataformas git como Github, Bitbucket, Assembla y Gitlab. Pedirá al usuario que otorgue permisos a TravisCI para acceder a los repositorios que quiere integrar con TravisCI.

Por ejemplo, en Github pedirá los siguientes permisos:

  • user:email (solo lectura)

  • read:org (solo lectura)

  • repo: Otorga acceso de lectura y escritura al código, estados de los commits, colaboradores y estados de despliegue para repositorios y organizaciones públicas y privadas.

Secretos Encriptados

Variables de Entorno

En TravisCI, como en otras plataformas CI, es posible guardar secretos a nivel de repositorio que se guardarán encriptados y se desencriptarán y se pondrán en la variable de entorno de la máquina que ejecuta la build.

Es posible indicar las ramas a las que estarán disponibles los secretos (por defecto todas) y también si TravisCI debería ocultar su valor si aparece en los logs (por defecto lo hará).

Secretos Encriptados Personalizados

Para cada repositorio TravisCI genera un par de claves RSA, guarda la privada y hace que la clave pública del repositorio esté disponible para aquellos que tienen acceso al repositorio.

Puedes acceder a la clave pública de un repositorio con:

travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test

Luego, puedes usar esta configuración para encriptar secretos y agregarlos a tu .travis.yaml. Los secretos serán desencriptados cuando se ejecute la build y estarán accesibles en las variables de entorno.

Ten en cuenta que los secretos encriptados de esta manera no aparecerán listados en las variables de entorno de la configuración.

Archivos Encriptados Personalizados

De la misma manera que antes, TravisCI también permite encriptar archivos y luego desencriptarlos durante la build:

travis encrypt-file super_secret.txt -r carlospolop/t-ci-test

encrypting super_secret.txt for carlospolop/t-ci-test
storing result as super_secret.txt.enc
storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d

Pro Tip: You can add it automatically by running with --add.

Make sure to add super_secret.txt.enc to the git repository.
Make sure not to add super_secret.txt to the git repository.
Commit all changes to your .travis.yml.

Note que al cifrar un archivo se configurarán 2 Variables de Entorno dentro del repositorio, tales como:

TravisCI Enterprise

Travis CI Enterprise es una versión on-prem de Travis CI, que puedes desplegar en tu infraestructura. Piensa en la versión 'servidor' de Travis CI. Usar Travis CI te permite habilitar un sistema de Integración Continua/Despliegue Continuo (CI/CD) fácil de usar en un entorno, que puedes configurar y asegurar como desees.

Travis CI Enterprise consta de dos partes principales:

  1. Servicios TCI (o Servicios Core de TCI), responsables de la integración con sistemas de control de versiones, autorización de builds, programación de trabajos de build, etc.

  2. Imágenes de entorno de build y Worker de TCI (también llamadas imágenes de SO).

Los servicios Core de TCI requieren lo siguiente:

  1. Una base de datos PostgreSQL11 (o posterior).

  2. Una infraestructura para desplegar un clúster de Kubernetes; puede desplegarse en un clúster de servidores o en una sola máquina si es necesario.

  3. Dependiendo de tu configuración, es posible que desees desplegar y configurar algunos de los componentes por tu cuenta, por ejemplo, RabbitMQ - consulta Setting up Travis CI Enterprise para más detalles.

El Worker de TCI requiere lo siguiente:

  1. Una infraestructura donde se pueda desplegar una imagen de docker que contenga el Worker y una imagen de build vinculada.

  2. Conectividad a ciertos componentes de los Servicios Core de Travis CI - consulta Setting Up Worker para más detalles.

La cantidad de imágenes de entorno de build y Worker de TCI desplegadas determinará la capacidad concurrente total del despliegue de Travis CI Enterprise en tu infraestructura.

Apoya HackTricks

Last updated