Basic TravisCI Information

Support HackTricks

Access

TravisCIは、Github、Bitbucket、Assembla、Gitlabなどの異なるgitプラットフォームと直接統合します。ユーザーにTravisCIにアクセス許可を与えて、TravisCIと統合したいリポジトリにアクセスさせるように求めます。

例えば、Githubでは以下の権限を求めます:

  • user:email (読み取り専用)

  • read:org (読み取り専用)

  • repo: 公開および非公開のリポジトリと組織のコード、コミットステータス、コラボレーター、デプロイメントステータスへの読み取りおよび書き込みアクセスを許可します。

Encrypted Secrets

Environment Variables

TravisCIでは、他のCIプラットフォームと同様に、リポジトリレベルのシークレットを保存することが可能で、これらは暗号化されて保存され、ビルドを実行するマシンの環境変数に復号化されてプッシュされます。

シークレットが利用可能なブランチ(デフォルトではすべて)を指定することが可能で、またTravisCIがログに表示された場合にその値を隠すかどうか(デフォルトでは隠す)も指定できます。

Custom Encrypted Secrets

各リポジトリに対してTravisCIはRSAキーペアを生成し、秘密鍵を保持し、リポジトリにアクセスできる人に公開鍵を提供します。

以下のコマンドでリポジトリの公開鍵にアクセスできます:

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

次に、このセットアップを使用して秘密情報を暗号化し、それらを .travis.yaml に追加できます。ビルドが実行されると秘密情報は復号化され環境変数でアクセス可能になります。

この方法で暗号化された秘密情報は、設定の環境変数リストには表示されないことに注意してください。

Custom Encrypted Files

前述の方法と同様に、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つのEnv Variablesがリポジトリ内に設定されることに注意してください:

TravisCI Enterprise

Travis CI Enterpriseは、Travis CIのオンプレミスバージョンであり、自分のインフラストラクチャにデプロイできます。Travis CIの「サーバー」バージョンと考えてください。Travis CIを使用すると、環境内で使いやすいContinuous Integration/Continuous Deployment (CI/CD)システムを有効にすることができ、自由に設定およびセキュリティを確保できます。

Travis CI Enterpriseは2つの主要な部分で構成されています:

  1. TCI サービス(またはTCIコアサービス)、バージョン管理システムとの統合、ビルドの認証、ビルドジョブのスケジューリングなどを担当。

  2. TCI Workerおよびビルド環境イメージ(OSイメージとも呼ばれる)。

TCIコアサービスには以下が必要です:

  1. PostgreSQL11(またはそれ以降)のデータベース。

  2. Kubernetesクラスターをデプロイするためのインフラストラクチャ。必要に応じてサーバークラスターまたは単一のマシンにデプロイ可能。

  3. セットアップに応じて、RabbitMQなどのコンポーネントを自分でデプロイおよび設定することを検討するかもしれません。詳細はSetting up Travis CI Enterpriseを参照してください。

TCI Workerには以下が必要です:

  1. Workerとリンクされたビルドイメージを含むdockerイメージをデプロイできるインフラストラクチャ

  2. 特定のTravis CIコアサービスコンポーネントへの接続性 - 詳細はSetting Up Workerを参照してください。

デプロイされたTCI Workerおよびビルド環境OSイメージの量が、インフラストラクチャ内のTravis CI Enterpriseデプロイメントの総同時実行容量を決定します。

Support HackTricks

Last updated