Basic TravisCI Information

Підтримайте HackTricks

Доступ

TravisCI безпосередньо інтегрується з різними git платформами, такими як Github, Bitbucket, Assembla та Gitlab. Він попросить користувача надати TravisCI дозволи для доступу до репозиторіїв, з якими він хоче інтегруватися.

Наприклад, у Github він запитає наступні дозволи:

  • user:email (тільки для читання)

  • read:org (тільки для читання)

  • repo: Надає доступ на читання та запис до коду, статусів комітів, співпрацівників та статусів розгортання для публічних та приватних репозиторіїв і організацій.

Зашифровані секрети

Змінні середовища

У TravisCI, як і в інших CI платформах, можливо зберігати на рівні репозиторію секрети, які будуть збережені в зашифрованому вигляді та дешифруватимуться і передаватимуться в змінну середовища машини, що виконує збірку.

Можливо вказати гілки, до яких секрети будуть доступні (за замовчуванням всі) і також, чи повинен TravisCI приховувати його значення, якщо воно з'являється в журналах (за замовчуванням так).

Користувацькі зашифровані секрети

Для кожного репозиторію TravisCI генерує пару RSA ключів, зберігає приватний ключ і робить публічний ключ репозиторію доступним для тих, хто має доступ до репозиторію.

Ви можете отримати доступ до публічного ключа одного репозиторію за допомогою:

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

Тоді ви можете використовувати цю налаштування, щоб шифрувати секрети та додавати їх до вашого .travis.yaml. Секрети будуть розшифровані, коли буде запущено збірку і доступні в змінних середовища.

Зверніть увагу, що секрети, зашифровані таким чином, не з'являться у списку змінних середовища в налаштуваннях.

Користувацькі зашифровані файли

Так само, як і раніше, TravisCI також дозволяє шифрувати файли, а потім розшифровувати їх під час збірки:

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.

Зверніть увагу, що при шифруванні файлу 2 змінні середовища будуть налаштовані в репозиторії, такі як:

TravisCI Enterprise

Travis CI Enterprise - це локальна версія Travis CI, яку ви можете розгорнути у своїй інфраструктурі. Думайте про «серверну» версію Travis CI. Використання Travis CI дозволяє вам активувати просту у використанні систему безперервної інтеграції/безперервного розгортання (CI/CD) в середовищі, яке ви можете налаштувати та захистити на свій розсуд.

Travis CI Enterprise складається з двох основних частин:

  1. TCI сервіси (або TCI Core Services), відповідальні за інтеграцію з системами контролю версій, авторизацію збірок, планування завдань збірки тощо.

  2. TCI Worker та образи середовища збірки (також називаються образами ОС).

TCI Core services вимагають наступного:

  1. PostgreSQL11 (або новішу) базу даних.

  2. Інфраструктуру для розгортання кластера Kubernetes; його можна розгорнути в кластері серверів або на одному комп'ютері, якщо це необхідно.

  3. Залежно від вашої конфігурації, ви можете захотіти розгорнути та налаштувати деякі компоненти самостійно, наприклад, RabbitMQ - див. Налаштування Travis CI Enterprise для отримання додаткової інформації.

TCI Worker вимагає наступного:

  1. Інфраструктуру, де можна розгорнути образ docker, що містить Worker та пов'язаний образ збірки.

  2. З'єднання з певними компонентами Travis CI Core Services - див. Налаштування Worker для отримання додаткової інформації.

Кількість розгорнутого TCI Worker та образів ОС середовища збірки визначатиме загальну одночасну потужність розгортання Travis CI Enterprise у вашій інфраструктурі.

Підтримка HackTricks

Last updated