Basic TravisCI Information

Suporte ao HackTricks

Acesso

TravisCI integra-se diretamente com diferentes plataformas git, como Github, Bitbucket, Assembla e Gitlab. Ele pedirá ao usuário para dar permissões ao TravisCI para acessar os repositórios que ele deseja integrar com o TravisCI.

Por exemplo, no Github ele pedirá as seguintes permissões:

  • user:email (somente leitura)

  • read:org (somente leitura)

  • repo: Concede acesso de leitura e escrita ao código, status de commits, colaboradores e status de implantação para repositórios e organizações públicas e privadas.

Segredos Criptografados

Variáveis de Ambiente

No TravisCI, assim como em outras plataformas CI, é possível salvar segredos a nível de repositório que serão salvos criptografados e descriptografados e inseridos na variável de ambiente da máquina que executa a build.

É possível indicar os branches nos quais os segredos estarão disponíveis (por padrão todos) e também se o TravisCI deve ocultar seu valor se ele aparecer nos logs (por padrão ele ocultará).

Segredos Criptografados Personalizados

Para cada repositório o TravisCI gera um par de chaves RSA, mantém a privada e disponibiliza a chave pública do repositório para aqueles que têm acesso ao repositório.

Você pode acessar a chave pública de um repositório com:

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

Então, você pode usar esta configuração para criptografar segredos e adicioná-los ao seu .travis.yaml. Os segredos serão descriptografados quando a build for executada e acessíveis nas variáveis de ambiente.

Note que os segredos criptografados desta forma não aparecerão listados nas variáveis de ambiente das configurações.

Arquivos Criptografados Personalizados

Da mesma forma que antes, o TravisCI também permite criptografar arquivos e depois descriptografá-los durante a 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 ao criptografar um arquivo, 2 Variáveis de Ambiente serão configuradas dentro do repositório, como:

TravisCI Enterprise

Travis CI Enterprise é uma versão on-prem do Travis CI, que você pode implantar na sua infraestrutura. Pense na versão 'server' do Travis CI. Usar o Travis CI permite habilitar um sistema de Integração Contínua/Implantação Contínua (CI/CD) fácil de usar em um ambiente, que você pode configurar e proteger como desejar.

Travis CI Enterprise consiste em duas partes principais:

  1. Serviços TCI (ou Serviços Core TCI), responsáveis pela integração com sistemas de controle de versão, autorização de builds, agendamento de jobs de build, etc.

  2. Worker TCI e imagens de ambiente de build (também chamadas de imagens de SO).

Os serviços Core TCI requerem o seguinte:

  1. Um banco de dados PostgreSQL11 (ou posterior).

  2. Uma infraestrutura para implantar um cluster Kubernetes; pode ser implantado em um cluster de servidores ou em uma única máquina, se necessário.

  3. Dependendo da sua configuração, você pode querer implantar e configurar alguns dos componentes por conta própria, por exemplo, RabbitMQ - veja Configurando Travis CI Enterprise para mais detalhes.

O Worker TCI requer o seguinte:

  1. Uma infraestrutura onde uma imagem docker contendo o Worker e uma imagem de build vinculada possa ser implantada.

  2. Conectividade com certos componentes dos Serviços Core do Travis CI - veja Configurando Worker para mais detalhes.

A quantidade de Workers TCI e imagens de SO de ambiente de build implantadas determinará a capacidade total concorrente da implantação do Travis CI Enterprise na sua infraestrutura.

Support HackTricks

Last updated