Basic TravisCI Information

Wspieraj HackTricks

Dostęp

TravisCI bezpośrednio integruje się z różnymi platformami git, takimi jak Github, Bitbucket, Assembla i Gitlab. Poprosi użytkownika o nadanie uprawnień TravisCI do dostępu do repozytoriów, które chce zintegrować z TravisCI.

Na przykład, w Github poprosi o następujące uprawnienia:

  • user:email (tylko do odczytu)

  • read:org (tylko do odczytu)

  • repo: Udziela dostępu do odczytu i zapisu kodu, statusów commitów, współpracowników i statusów wdrożeń dla publicznych i prywatnych repozytoriów oraz organizacji.

Zaszyfrowane Sekrety

Zmienne Środowiskowe

W TravisCI, podobnie jak na innych platformach CI, możliwe jest zapisanie na poziomie repozytorium sekretów, które będą zapisane zaszyfrowane i odszyfrowane oraz umieszczone w zmiennej środowiskowej maszyny wykonującej build.

Możliwe jest wskazanie gałęzi, do których sekrety będą dostępne (domyślnie wszystkie) oraz czy TravisCI powinien ukryć ich wartość jeśli pojawią się w logach (domyślnie tak).

Niestandardowe Zaszyfrowane Sekrety

Dla każdego repozytorium TravisCI generuje parę kluczy RSA, zachowuje klucz prywatny i udostępnia klucz publiczny repozytorium tym, którzy mają dostęp do repozytorium.

Możesz uzyskać dostęp do klucza publicznego jednego repozytorium za pomocą:

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

Następnie możesz użyć tej konfiguracji, aby zaszyfrować sekrety i dodać je do swojego .travis.yaml. Sekrety zostaną odszyfrowane podczas uruchamiania builda i będą dostępne w zmiennych środowiskowych.

Zauważ, że sekrety zaszyfrowane w ten sposób nie pojawią się na liście zmiennych środowiskowych w ustawieniach.

Custom Encrypted Files

Tak samo jak wcześniej, TravisCI pozwala również na szyfrowanie plików i ich odszyfrowanie podczas builda:

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.

Zauważ, że podczas szyfrowania pliku 2 zmienne środowiskowe zostaną skonfigurowane wewnątrz repozytorium, takie jak:

TravisCI Enterprise

Travis CI Enterprise to wersja on-prem Travis CI, którą można wdrożyć w swojej infrastrukturze. Pomyśl o 'serwerowej' wersji Travis CI. Korzystanie z Travis CI pozwala na uruchomienie łatwego w użyciu systemu Continuous Integration/Continuous Deployment (CI/CD) w środowisku, które można skonfigurować i zabezpieczyć według własnych potrzeb.

Travis CI Enterprise składa się z dwóch głównych części:

  1. Usługi TCI (lub TCI Core Services), odpowiedzialne za integrację z systemami kontroli wersji, autoryzację buildów, planowanie zadań buildów itp.

  2. Worker TCI i obrazy środowiska buildów (nazywane również obrazami OS).

Usługi TCI Core wymagają następujących elementów:

  1. Baza danych PostgreSQL11 (lub nowsza).

  2. Infrastruktura do wdrożenia klastra Kubernetes; może być wdrożona w klastrze serwerów lub na pojedynczej maszynie, jeśli to konieczne.

  3. W zależności od konfiguracji, możesz chcieć wdrożyć i skonfigurować niektóre komponenty samodzielnie, np. RabbitMQ - zobacz Setting up Travis CI Enterprise po więcej szczegółów.

Worker TCI wymaga następujących elementów:

  1. Infrastruktura, w której można wdrożyć obraz docker zawierający Worker i powiązany obraz build.

  2. Łączność z niektórymi komponentami Travis CI Core Services - zobacz Setting Up Worker po więcej szczegółów.

Liczba wdrożonych Worker TCI i obrazów OS środowiska buildów określi całkowitą równoczesną pojemność wdrożenia Travis CI Enterprise w twojej infrastrukturze.

Wspieraj HackTricks

Last updated