Artefacts クラウドシミュレーションでのテスト実行

概要

artefacts run [jobname] を使用すると、テストはローカルで実行されます。しかし、テストに時間がかかる場合、例えば複数のパラメータ化されたシナリオがある場合は、Artefacts クラウドシミュレーション上で実行したいと思うかもしれません。

その場合は artefacts run-remote [jobname]を使用できます。ローカルコードがアーカイブファイルに圧縮され、実行のために当社のサーバーに送信されます。

以下は実行モデルの概要です。

graph TD
  subgraph artefacts
    ac(cloud simulation) --> dashboard(dashboard)
  end
  subgraph LocalMachine
    lc(local code) -.-CLI
    CLI --run_local-->dashboard
    CLI --run_remote-->ac
  end
  lc --push--> github
  github --pushEvent/pullCode--> ac

Artefacts クラウドシミュレーションでの実行時間は、使用量クォータに計上されます。

.artefactsignore ファイル

プロジェクト内にテスト実行に必要のないファイル(例:rosbags、一部のアセットなど)がある場合、アップロードするアーカイブファイルのサイズを小さく保つために、プロジェクトのルートに .artefactsignore ファイルを追加することができます。これは .gitignore ファイルと同じ方法で使用できます。例えば:

rosbags/
venv/
.DS_Store

これにより、 rosbagsvenv フォルダ、および隠しファイル .DS_Store はバンドルされません。

クラウドシミュレーション用のパッケージング

Artefacts はいくつかのシミュレーターとフレームワークをすぐに使用できるよう対応しています。その場合、必要なのはテスト起動ファイルを提供するだけです ( Running and Tracking Tests を参照)

現在サポートされているのは:

  • Gazebo Ignition(Fortress)を使用した ROS2
runtime:
  simulator: gazebo:fortress
  framework: ros2:humble
  • Gazebo(Harmonic)を使用した ROS2
runtime:
  simulator: gazebo:harmonic
  framework: ros2:humble 

設定ファイルの runtime セクションでこれらが適切に指定されていることを確認してください ( 設定構文 を参照)。 また、(プロジェクトが ROS を使用していない場合など)Artefacts クラウドシミュレーション上で実行するための Docker パッケージを準備する 必要があるかもしれません。

クラウドシミュレーション用のパッケージングのカスタマイズ

ほとんどの場合、ランタイムブロックで使用するフレームワークとシミュレーターを指定するだけで十分です:

runtime:
  simulator: gazebo:fortress
  framework: ros2:humble

そしてテスト起動ファイルを提供するだけで、Artefacts は他の入力なしであなたのプロジェクトを構築してテストすることができます。しかし、一部のプロジェクトでは、いくつかのカスタマイズや微調整が必要な場合があることも理解しています。

これらのケースに対応するため、 artefacts.yaml ファイルの package['custom'] セクションで以下のキーを使用できます:

package:
  custom:
    os: # string
    include: # List
    commands: # List
  • os: 文字列 ベースイメージを入力します (例: ubuntu:22.04)。 これは frameworksimulator の選択に基づいてArtefactsが使用するベースイメージをオーバーライドします。

例:

package:
  custom:
    os: ubuntu:22.04
  • include: リスト デフォルトでは、Artefacts はGitHubリポジトリ(継続的インテグレーション)または現在の作業ディレクトリ(‘run-remote’)を再帰的にサーバー上で実行されているコンテナにコピーします。 include を使用して、コンテナで利用可能にしたいディレクトリ/ファイルを指定します。

例:

package:
  custom:
    include:
	  - ./path/to/my_necessary_files
	  - ./makefile
  • commands: リスト プロジェクトのビルド段階の前に実行する追加のbashコマンドが必要な場合は、ここに入力します。一般的な使用例は、ros/gazeboプロジェクトを構築する際に、通常のros source に加えてカスタム source が必要な場合です。

例:

package:
  custom:
    commands:
	  - source simulator/my_workspace/install/setup.bash
runtime:
  framework: ros2:humble
  simulator: gazebo:fortress
最終更新 30.04.2025: Japanese translation (#7) (f59ca38)