Skip to main content

ツールバージョンの設定

概要

Bitriseは、CIプロジェクトに適したバージョンのツールを自動的にセットアップできます。例えば、ほとんどの CI ワークフローは、プロジェクトと互換性のある適切なバージョンの Ruby や Node.js をインストールすることから始まります

Bitriseは、CIプロジェクトに適したバージョンのツールを自動的にセットアップできます。例えば、ほとんどの CI ワークフローは、プロジェクトと互換性のある適切なバージョンの Ruby や Node.js をインストールすることから始まります

ツールを設定するには次の 2 つの方法があります。

  • 宣言型の YAML ベースのメソッド:ツールとそのバージョンを tools 設定 YAML ファイルの最上位にあるプロパティ。次の方法から始めることをおすすめします 宣言型ツールのセットアップ.

  • ワークフロー実行中のインストール:専用のBitrise StepまたはCLIサブコマンドを実行するスクリプトのいずれかを介してインストールします。 ワークフロー実行中のツールセットアップ

適切なアプローチを選択しやすくするために、各方法の違いと制限を考慮してください。

1. 宣言型構成とCLIの使用の比較

宣言型構成

ワークフロー実行

ワークフローの最初のステップの前に自動的に実行されます。

ワークフロー内で手動で実行されます。ワークフローの途中でも実行できます。

バージョンファイルから設定を読み込めません:ツールセットアップはバージョンファイルの前に実行されます Git クローン ステップ 1。

ツールバージョンは 2 つのファイル (バージョンファイルと設定 YAML ファイル) で定義されます。

の後でコマンドを実行すると、バージョンファイルから構成を読み取ることができます Git クローン ステップ 1。

再利用性については、次のことをお勧めします。 を作成する step bundle すべてのワークフローで参照できます。

追加の設定は不要:ツールは自動的に次の場所で利用できるようになります $PATH ワークフローステップ内。

専用のステップでは追加の設定は不要です。

独自のスクリプトを使用する場合、現在のシェルまたはスクリプトステップでツールがアクティブになる前にシェルソースが必要です (詳細は以下を参照)。

ローカル開発環境を設定しません (ワークフローをローカルで実行する場合を除く) bitrise run workflow_name)。

ツールのバージョンがバージョンファイルで定義されている場合、ローカル開発者環境を設定します (たとえば、 .ruby-version) そして、チームの全員がツールバージョンマネージャーをセットアップしました (たとえば、 Mise)。


宣言型ツールのセットアップ

ツールとそのバージョンをに追加します tools 設定 YAML ファイルの最上位にあるプロパティ。:

tools:
  nodejs: 22:latest
  ruby: 3.3:installed
  golang: 1.24.5

workflows:
# ...

ビルドを実行すると、ワークフローの最初のステップの前にツールのセットアップが実行されます。ビルドログで確認できます。

20250808-build-log-tool-setup.png

ビルドの開始時に設定するツールのバージョン番号を定義するには、次の 3 つの方法があります。

正確なバージョン番号の設定

で正確なバージョン番号を定義できます tools プロパティ:

tools:
  nodejs: 22.1.0

これにより、最も確定的な動作と再現性の高いビルドが可能になりますが、インストールには長い時間がかかる可能性があります。

バージョン番号の一部を設定する

プロジェクトに正確なツールバージョンが必要ない場合は、バージョン番号の一部を定義できます。バージョン番号の一部を指定すると、BitriseはBitriseビルドマシンにプリインストールされているバージョンか、入手可能な最新リリースバージョンのどちらかを確認します

ツールのプレインストール版については、 x.y:installed 構文:

tools:
  ruby: 3.3:installed

これにより、BitriseビルドマシンにどのRuby 3.3パッチバージョンがプリインストールされているかが確認され、そのバージョンが使用されています。プリインストールされたバージョンが部分バージョンと一致しない場合、最も一致するバージョンが実行時にダウンロードされ、インストールされます。ビルドは失敗しません

ツールの最新リリースバージョンについては、 x.y:latest 構文:

tools:
  ruby: 3.3:latest

これにより、Bitriseビルドマシンに何がプリインストールされているかに関係なく、最新の3.3パッチバージョンのRubyがインストールされます。

ワークフロー固有の定義

ツールのバージョン定義は、グローバルに定義することも、1 つ以上のワークフロー専用に定義することもできます。定義する代わりに tools 設定の一番上のプロパティで、1 つまたは複数のワークフローの下にネストします。

キーワードを使用して、特定のワークフローの一部のツールの設定を解除することもできます unset。設定を解除すると、そのワークフローにはツールがインストールされなくなります。設定を解除しても、グローバルコンテキストでは効果がありません。

ワークフロー固有の定義を使用する場合は、次の 3 つの一般的なパターンのいずれかを使用することをお勧めします。

  • ワークフロー固有の定義のみ:

    workflows:
      test:
        tools:
          nodejs: 22:installed
    

    この例では、 test ワークフローでは、Node.js v22 の最新プレインストールバージョンを使用します。グローバルツール定義は設定されていません

  • 1 つまたは複数のワークフローのグローバル定義をオーバーライドします。

    tools:
      nodejs: 22:installed
      ruby: 3.3:installed
    
    workflows:
      test-latest-node:
        tools:
          nodejs: "24.7.0"
    

    この例では、グローバル設定は Node.js v22 の最もプレインストールされているバージョンです。ワークフロー test-latest-nodeただし、Node.js バージョン 24.7.0 を使用しています。

  • 1 つまたは複数のワークフローのグローバルツールバージョンの設定解除:

    tools:
      nodejs: 22:installed
      ruby: 3.3:installed
    
    workflows:
      lint:
        tools:
          ruby: unset # this workflow only needs Node.js

    この例では、ワークフローは lint Ruby はインストールされません。

他のエイリアスを使う

スペシャルを使用することも可能です latest そして installed ツールの最新リリースバージョンまたはインストール数が最も多いバージョンを選択するバージョン文字列:

ザ・ installed value は、ビルド時に最もインストールされていたバージョンを使用することを意味します。

tools:
  ruby: installed

ザ・ latest value は、ビルド時にリリースされた最新バージョンを使用することを意味します。

tools:
  nodejs: latest

ワークフロー実行中のツールセットアップ

ワークフロー実行中にツールセットアップを実行するには、専用の依存関係インストーラーステップを使用するか、独自のスクリプトから呼び出す CLI サブコマンドを使用できます。

CLI サブコマンドによるツールセットアップ

に電話してください bitrise tools setup あなたのワークフローから。ツールは設定ファイルまたはバージョンファイルのパスを検索します。パスを指定しない場合、ツールはワーキングディレクトリ内のファイルを検出します。

この例では、からコマンドを呼び出しています スクリプト a を使ったステップ --config を検索するフラグ .tool-versions ファイル。

workflows:
  build-and-test:
    steps:
      # Project stores tool config in a .tool-versions file committed to the repo
      - git-clone: {}
      - script:
          title: Set up environment
          inputs:
            # Set up tools based on the .tool-versions file in the repo
            - content: bitrise tools setup --config .tool-versions
      
      # Rest of the workflow has access to the right tools and versions in $PATH

設定ファイルなしで特定のツールをインストールすることもできます。

bitrise tools install [--provider PROVIDER] [--format FORMAT] <TOOL> <VERSION>[:SUFFIX]

# Examples:
bitrise tools install nodejs 20.10.0
bitrise tools install nodejs 22:latest
eval "$(bitrise tools install ruby 3.2.0 --format bash)"  # activate in shell

デフォルトでは、実行中 bitrise tools setup 同じシェルセッションでツールの変更を有効にしない (例えば、ツールのセットアップとツールの使用が同じシェルセッションで行われる場合) スクリプト ステップ)。この例では、新しい Ruby バージョンをインストールしています。

#! /bin/bash

bitrise tools setup --config .ruby-version

ruby --version

このコマンドを a で実行すると スクリプト ステップ、 PATH 以前のバージョンの Ruby を引き続き指します。

以下を使用して、同じシェルセッションでツールをインストールしてアクティブ化できます。 eval:

eval "$(bitrise tools setup --config .ruby-version --format bash)"

ruby --version # $PATH is updated with the newly set up ruby version

または、実行することもできます bitrise tools setup 別のステップで。

workflows:
  build-and-test:
    steps:
      - git-clone: {}
      - script:
          title: Set up environment
          inputs:
            # Set up tools based on the .tool-versions file in the repo
            - content: bitrise tools setup --config .tool-versions
      
      # Rest of the workflow has access to the right tools and versions in $PATH
      - cocoapods-install: {}

Dependency インストーラーステップによるツールセットアップ

ザ・ 依存関係インストーラー ステップは、ツールのインストールを実行する CLI サブコマンドのラッパーです。複数のタイプのツールバージョンファイルを受け入れます。詳細なリストについては、ステップの説明を参照してください

ステップを使用するには、ツールを必要とするステップの前にワークフローに追加してください。

 steps:
 - activate-ssh-key@4: {}
 - git-clone@8: {}
 - dependency-installer@1:
     inputs:
     - tool_version_file: ".tool-versions"

サポート対象ツール

このシステムは、増え続けるツールと言語をサポートするように設計されていますが、Bitriseはリストされている最も一般的なツールの安定性のみを検証およびテストします。ここに記載されていないツールが必要な場合は、コミュニティプラグインの使用方法の詳細をご覧ください

その他のツール

このページにリストされているツールが見つからない場合は、コミュニティプラグインを使用してツールを設定できます。コミュニティの場合 asdf 指定したツール用のプラグインが存在する場合、そのツールプラグインのプラグインを提供できる git clone コンフィグ内の URL。たとえば、以下のようにして適切なバージョンの Denoをセットアップします asdf プラグイン:

tools:
  deno: 2.4.3

tool_config:
  extra_plugins:
    deno: https://github.com/asdf-community/asdf-deno.git
1. サポート対象ツール

ツール名

YAML の例

[メモ]

ルビー

3.3.x バージョンを使用する場合、インストール時間を節約するためにプレインストールバージョンを優先します。

tools:
  ruby: 3.3:installed

現時点では、Ruby バージョンは、以下を使用してソースからビルドする必要があります Ruby-build プロジェクトそのため、インストールするたびにビルドに数分かかります。

ビットライズスタック には常に複数のRubyバージョンがプリインストールされているので、プリインストールされたRubyを使用する部分バージョン (利用可能な場合) を使用するとインストール時間を短縮できます。

行く

1.24.0 バージョンのインストール:

tools:
  golang: 1.24.0

Python

3.12.x バージョンを使用し、インストール時間を節約するためにプレインストールバージョンを優先します。

tools:
  python: 3.12:installed

現時点では、Python バージョンはソースからビルドする必要があるため、インストールするたびにビルドに数分かかります。

ビットライズスタック 常にプリインストールされている Python バージョンが付属しているので、プリインストールされた Python を使用する部分バージョン (利用可能な場合) を使用することでインストール時間を避けることができます。

Node.js

22.x.y バージョンを使用し、インストール時間を節約するためにプレインストールバージョンを優先します。

tools:
  nodejs: 22:installed

Java

Java 25 のインストール:

tools:
  java: openjdk-25.0.0

フラッター

Flutterバージョンには、サフィックスとしてリリースチャンネルを含める必要があります。

tools:
  flutter: 3.32.5-stable

トゥイスト

4.54.0 バージョンのインストール:

tools:
  tuist: 4.54.0


ツールバージョンマネージャーの変更

Bitriseはツールバージョンマネージャーを使用して、実行時に必要なツールをインストールして提供します。主なマネージャーは ミス、しかし asdf もサポートされており、動作も同じです。何らかの理由で実装を切り替えたい場合は、次の方法で行えます

tool_config:
  provider: asdf

制限事項と代替案

  • ビジュアルエディターなし: 現在のところ、この機能は設定 YAML でのみ設定可能です。

  • 専用のバージョン管理ツール: ツールのインストールには、このページで説明されている方法を使用することをお勧めします。

    使用する必要がある場合 mise または別のツールを直接使用する場合は、スタックにはインストールされていないことに注意してください。公式の指示に従ってインストールする必要があります

    asdf はデフォルトでスタックにインストールされます。特にエッジスタックでは、特定のバージョンをピン留めする保証はありません asdf 将来の Edge スタックで削除される可能性があります。