Basic TravisCI Information

Apoya a HackTricks

Acceso

TravisCI se integra directamente con diferentes plataformas de git como Github, Bitbucket, Assembla y Gitlab. Pedirá al usuario que le dé permisos a TravisCI para acceder a los repos que desea integrar con TravisCI.

Por ejemplo, en Github pedirá los siguientes permisos:

  • user:email (solo lectura)

  • read:org (solo lectura)

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

Secretos Encriptados

Variables de Entorno

En TravisCI, al igual que en otras plataformas de CI, es posible guardar secretos a nivel de repositorio que se guardarán encriptados y serán desencriptados y enviados en la variable de entorno de la máquina que ejecuta la construcción.

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

Secretos Encriptados Personalizados

Para cada repositorio TravisCI genera un par de claves RSA, mantiene la privada, y hace disponible la clave pública del repositorio a 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 construcción y 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 construcción:

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 encriptar 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 Centrales TCI), responsables de la integración con sistemas de control de versiones, autorización de compilaciones, programación de trabajos de compilación, etc.

  2. TCI Worker e imágenes de entorno de compilación (también llamadas imágenes de SO).

Los servicios centrales de TCI requieren lo siguiente:

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

  2. Una infraestructura para desplegar un clúster de Kubernetes; puede ser desplegado 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 la Configuración de 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 compilación vinculada.

  2. Conectividad a ciertos componentes de los Servicios Centrales de Travis CI - consulta la Configuración del Worker para más detalles.

La cantidad de Workers de TCI desplegados y las imágenes de entorno de compilación de SO determinarán la capacidad total concurrente del despliegue de Travis CI Enterprise en tu infraestructura.

Apoya a HackTricks

Last updated