Basic TravisCI Information

HackTricksをサポートする

アクセス

TravisCIは、Github、Bitbucket、Assembla、Gitlabなどのさまざまなgitプラットフォームと直接統合されています。ユーザーに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は2つの主要な部分で構成されています:

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

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

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

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

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

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

TCIワーカーには以下が必要です:

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

  2. 特定のTravis CIコアサービスコンポーネントへの接続 - 詳細については、ワーカーの設定を参照してください。

デプロイされたTCIワーカーとビルド環境OSイメージの数は、あなたのインフラストラクチャにおけるTravis CI Enterpriseデプロイメントの総同時容量を決定します。

Last updated