# Osnovne informacije o TravisCI

{{#include ../../banners/hacktricks-training.md}}

## Pristup

TravisCI se direktno integriše sa različitim git platformama kao što su Github, Bitbucket, Assembla i Gitlab. Pitaće korisnika da da TravisCI dozvole za pristup repozitorijumima koje želi da integriše sa TravisCI.

Na primer, u Github-u će tražiti sledeće dozvole:

- `user:email` (samo za čitanje)
- `read:org` (samo za čitanje)
- `repo`: Daje pristup za čitanje i pisanje koda, statusa commit-a, saradnika i statusa implementacije za javne i privatne repozitorijume i organizacije.

## Enkriptovane tajne

### Promenljive okruženja

U TravisCI, kao i na drugim CI platformama, moguće je **sačuvati tajne na nivou repozitorijuma** koje će biti sačuvane enkriptovane i biće **dekriptovane i postavljene u promenljive okruženja** mašine koja izvršava gradnju.

![](<../../images/image (203).png>)

Moguće je naznačiti **grane na kojima će tajne biti dostupne** (podrazumevano sve) i takođe da li TravisCI **treba da sakrije njenu vrednost** ako se pojavi **u logovima** (podrazumevano će).

### Prilagođene enkriptovane tajne

Za **svaki repozitorijum** TravisCI generiše **RSA ključni par**, **čuva** **privatni** ključ, i čini **javnim ključem repozitorijuma dostupnim** onima koji imaju **pristup** repozitorijumu.

Možete pristupiti javnom ključu jednog repozitorijuma sa:
```
travis pubkey -r <owner>/<repo_name>
travis pubkey -r carlospolop/t-ci-test
```
Zatim, možete koristiti ovu postavku da **enkriptujete tajne i dodate ih u vaš `.travis.yaml`**. Tajne će biti **dekriptovane kada se izgradnja pokrene** i biće dostupne u **promenljivim okruženja**.

![](<../../images/image (139).png>)

Imajte na umu da tajne enkriptovane na ovaj način neće biti navedene u promenljivim okruženja podešavanja.

### Prilagođene Enkriptovane Datoteke

Na isti način kao i pre, TravisCI takođe omogućava da **enkriptujete datoteke i zatim ih dekriptujete tokom izgradnje**:
```
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.
```
Napomena da će prilikom enkripcije datoteke 2 Env Varijable biti konfigurisane unutar repozitorijuma kao što su:

![](<../../images/image (170).png>)

## TravisCI Enterprise

Travis CI Enterprise je **on-prem verzija Travis CI**, koju možete implementirati **u svojoj infrastrukturi**. Zamislite 'server' verziju Travis CI. Korišćenje Travis CI omogućava vam da omogućite jednostavan sistem Kontinuirane Integracije/Kontinuirane Isporuke (CI/CD) u okruženju koje možete konfigurisati i obezbediti kako želite.

**Travis CI Enterprise se sastoji od dva glavna dela:**

1. TCI **usluge** (ili TCI Core Services), odgovorne za integraciju sa sistemima za kontrolu verzija, autorizaciju gradnji, zakazivanje poslova gradnje, itd.
2. TCI **Worker** i slike okruženja za gradnju (takođe nazvane OS slike).

**TCI Core usluge zahtevaju sledeće:**

1. **PostgreSQL11** (ili noviji) bazu podataka.
2. Infrastrukturu za implementaciju Kubernetes klastera; može se implementirati u klasteru servera ili na jednoj mašini ako je potrebno.
3. U zavisnosti od vaše konfiguracije, možda ćete želeti da implementirate i konfigurišete neke od komponenti sami, npr., RabbitMQ - pogledajte [Podešavanje Travis CI Enterprise](https://docs.travis-ci.com/user/enterprise/tcie-3.x-setting-up-travis-ci-enterprise/) za više detalja.

**TCI Worker zahteva sledeće:**

1. Infrastrukturu gde se može implementirati docker slika koja sadrži **Worker i povezanu sliku za gradnju**.
2. Povezivost sa određenim komponentama Travis CI Core Services - pogledajte [Podešavanje Workera](https://docs.travis-ci.com/user/enterprise/setting-up-worker/) za više detalja.

Količina implementiranih TCI Worker i OS slika okruženja za gradnju odrediće ukupni kapacitet istovremenog korišćenja Travis CI Enterprise implementacije u vašoj infrastrukturi.

![](<../../images/image (199).png>)

{{#include ../../banners/hacktricks-training.md}}
