Basic TravisCI Information

Supporta HackTricks

Accesso

TravisCI si integra direttamente con diverse piattaforme git come Github, Bitbucket, Assembla e Gitlab. Chiederà all'utente di dare a TravisCI i permessi per accedere ai repository che vuole integrare con TravisCI.

Ad esempio, in Github chiederà i seguenti permessi:

  • user:email (solo lettura)

  • read:org (solo lettura)

  • repo: Concede accesso in lettura e scrittura al codice, agli stati dei commit, ai collaboratori e agli stati di deployment per i repository e le organizzazioni pubbliche e private.

Segreti Criptati

Variabili d'Ambiente

In TravisCI, come in altre piattaforme CI, è possibile salvare a livello di repo segreti che saranno salvati criptati e decriptati e inseriti nella variabile d'ambiente della macchina che esegue il build.

È possibile indicare i branch ai quali i segreti saranno disponibili (per impostazione predefinita tutti) e anche se TravisCI dovrebbe nascondere il loro valore se appare nei log (per impostazione predefinita lo farà).

Segreti Criptati Personalizzati

Per ogni repo TravisCI genera una coppia di chiavi RSA, conserva quella privata e rende la chiave pubblica del repository disponibile a coloro che hanno accesso al repository.

Puoi accedere alla chiave pubblica di un repo con:

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

Poi, puoi usare questa configurazione per crittografare i segreti e aggiungerli al tuo .travis.yaml. I segreti saranno decrittografati quando viene eseguita la build e accessibili nelle variabili d'ambiente.

Nota che i segreti crittografati in questo modo non appariranno elencati nelle variabili d'ambiente delle impostazioni.

File Crittografati Personalizzati

Allo stesso modo di prima, TravisCI consente anche di crittografare i file e poi decrittografarli 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.

Nota che quando si cripta un file, 2 variabili d'ambiente verranno configurate all'interno del repository come:

TravisCI Enterprise

Travis CI Enterprise è una versione on-prem di Travis CI, che puoi distribuire nella tua infrastruttura. Pensa alla versione 'server' di Travis CI. Utilizzare Travis CI ti consente di abilitare un sistema di Continuous Integration/Continuous Deployment (CI/CD) facile da usare in un ambiente che puoi configurare e proteggere come desideri.

Travis CI Enterprise è composto da due parti principali:

  1. Servizi TCI (o TCI Core Services), responsabili dell'integrazione con i sistemi di controllo versione, autorizzazione delle build, pianificazione dei job di build, ecc.

  2. Worker TCI e immagini dell'ambiente di build (chiamate anche immagini OS).

I servizi Core TCI richiedono quanto segue:

  1. Un database PostgreSQL11 (o successivo).

  2. Un'infrastruttura per distribuire un cluster Kubernetes; può essere distribuito in un cluster di server o in una singola macchina se necessario.

  3. A seconda della tua configurazione, potresti voler distribuire e configurare alcuni dei componenti da solo, ad esempio RabbitMQ - vedi Setting up Travis CI Enterprise per maggiori dettagli.

Il Worker TCI richiede quanto segue:

  1. Un'infrastruttura dove un'immagine docker contenente il Worker e un'immagine di build collegata possa essere distribuita.

  2. Connettività a determinati componenti dei servizi Core di Travis CI - vedi Setting Up Worker per maggiori dettagli.

La quantità di Worker TCI distribuiti e le immagini OS dell'ambiente di build determineranno la capacità totale concorrente della distribuzione di Travis CI Enterprise nella tua infrastruttura.

Supporta HackTricks

Last updated