Skip to main content

ツールバージョンの設定

概要

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

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

Bitriseは、CI/CD環境専用のツールをシンプルかつ宣言的に設定する方法を提供しています。ツールを宣言するには、そのツールとそのバージョンを追加するだけです 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

サポート対象ツール

このシステムは、増え続けるツールと言語をサポートするように設計されていますが、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 でのみ設定可能です。

  • ワークフローレベルのカスタマイズなし: 今のところ、ツールのグローバル設定は 1 つだけです。これはすべてのワークフローとパイプラインに当てはまります。環境変数をグローバルとワークフローレベルの両方で定義する方法と同様に、将来的にはワークフローを対象とした構成を導入する予定です

  • 次のようなバージョンファイルにはアクセスできません .node-version または .tool-versions: この機能は CI/CD 環境のセットアップのみを目的としています (今のところ)。ツールバージョンファイルを Git にコミットし、CI とローカルの開発者環境を同期させたい場合は、次のようなバージョンマネージャーを使用するとよいでしょう Miseasdf または nvm どちらの環境でも。