CLIリファレンス
このページでは、すべてのコマンド、オプション、使用パターンを含む、Probeコマンドラインインターフェイスの完全なドキュメントを提供します。
基本的な使用法
probe [options] <workflow-file>
probe <subcommand> [options] <file>コマンド構文
基本コマンド
単一のワークフローファイルを実行:
probe workflow.ymlファイルマージ
設定マージでワークフローを実行:
probe base.yml,environment.yml,overrides.ymlファイルは左から右に連結され、1つのYAMLドキュメントとして解析されます。複数のファイルで定義されたトップレベルのキーは最後のファイルの値になり、エントリ単位ではなくキーごと置き換わります。
位置引数
workflow-path
型: String(必須)
説明: ワークフローYAMLファイルのパス、またはマージ用のカンマ区切りファイルリスト
例:
# 単一ファイル
probe workflow.yml
# 複数ファイル(マージ)
probe base.yml,production.yml
# 相対パス
probe ./workflows/api-test.yml
# 絶対パス
probe /home/user/workflows/monitoring.ymlコマンドラインオプション
-v, --verbose
型: ブールフラグ
デフォルト: false
説明: 詳細な実行情報を表示する詳細出力を有効化
例:
probe -v workflow.yml
probe --verbose workflow.yml詳細出力に含まれる内容:
- ステップバイステップの実行詳細
- HTTPリクエスト/レスポンス情報
- テンプレート評価結果
- タイミング情報
- デバッグメッセージ
-h, --help
型: ブールフラグ
説明: コマンド使用法ヘルプを表示して終了
例:
probe -h
probe --help--version
型: ブールフラグ 説明: バージョン情報を表示して終了
例:
probe --version出力形式:
Probe Version 1.2.3 (commit: abc1234)--timing
型: ブールフラグ
デフォルト: false
説明: ステップごとの時刻情報(開始時刻とレスポンスタイム)を表示
例:
probe --timing workflow.yml--output
型: String
値: auto, spinner, stream
デフォルト: auto
説明: レポートの出力方法を選択します。autoは対話的な端末ならspinner、それ以外ならstreamを選びます。spinnerは進捗をその場で描き換え、streamは完了したものから順に書き出すため、CIのログやパイプに向いています。
値は環境変数PROBE_OUTPUTでも指定できます。優先順位はフラグ、環境変数、自動判定の順です。
例:
probe --output stream workflow.yml
probe --output=spinner workflow.yml
PROBE_OUTPUT=stream probe workflow.ymlサブコマンド
gen
OpenAPI仕様からprobeワークフローYAMLを生成します。
使い方:
probe gen <openapi-file>例:
probe gen petstore.ymldag
ワークフローを実行せずにジョブ依存関係グラフを表示します。デフォルトではASCIIアートで出力します。--mermaidを指定するとMermaidフローチャート形式で出力します。
使い方:
probe dag <workflow-file>
probe dag --mermaid <workflow-file>オプション:
| オプション | 説明 |
|---|---|
--mermaid | ASCIIアートの代わりにMermaidフローチャート形式で出力 |
ASCII出力例:
╭───────────────────────╮
│ Setup │
├───────────────────────┤
│ ○ Initialize │
╰───────────┬───────────╯
│
│
↓
╭───────────────────────╮
│ Build │
├───────────────────────┤
│ ○ Compile │
│ ○ Package │
╰───────────┬───────────╯
│
├──────────────────────────┐
↓ ↓
╭───────────────────────╮ ╭───────────────────────╮
│ Test A │ │ Test B │
├───────────────────────┤ ├───────────────────────┤
│ ○ Run tests │ │ ○ Run tests │
╰───────────────────────╯ ╰───────────────────────╯Mermaid出力例 (--mermaid):
以下の用途に便利です:
- 実行前にワークフロー構造を可視化
- ジョブ依存関係とそのステップの理解
- ジョブ依存関係の設定をデバッグ
- ドキュメントやダイアグラムの生成
- Markdownファイルへの埋め込み
環境変数
以下の環境変数がProbeの動作に影響します。
PROBE_OUTPUT
型: String
値: auto, spinner, stream
デフォルト: auto
説明: レポートの出力方法。--outputと同じ値を取り、フラグが指定された場合はそちらが優先されます。
export PROBE_OUTPUT=stream
probe workflow.ymlPROBE_MAX_REPEAT_COUNT
型: Integer
デフォルト: 10000
説明: ステップのrepeat.countの上限。これを超える指定をしたワークフローはエラーになります。
export PROBE_MAX_REPEAT_COUNT=50000
probe load-test.ymlPROBE_MAX_ATTEMPTS
型: Integer
デフォルト: 10000
説明: ステップのリトライmax_attemptsの上限。
export PROBE_MAX_ATTEMPTS=100
probe workflow.ymlFORCE_COLOR
型: String
値: 1
説明: 標準出力が端末でない場合でも色付き出力を強制します。CIのログで色を残したいときに使います。
FORCE_COLOR=1 probe workflow.ymlこれら以外の環境変数は、ワークフローのvarsから名前そのままで参照できます。詳しくは環境変数を参照してください。
使用例
基本的なワークフロー実行
# 簡単なヘルスチェックを実行
probe health-check.yml
# 詳細出力で実行
probe -v health-check.yml環境固有の実行
# 開発環境
probe workflow.yml,dev.yml
# ステージング環境
probe workflow.yml,staging.yml
# プロダクション環境
probe workflow.yml,prod.yml複雑な設定マージ
# 複数の設定をレイヤー化
probe base.yml,region-us.yml,environment-prod.yml,team-overrides.ymlCI/CD統合
#!/bin/bash
# deployment-test.sh
set -e
echo "Running deployment validation..."
probe deployment-validation.yml,${ENVIRONMENT}.yml
echo "Running smoke tests..."
probe smoke-tests.yml,${ENVIRONMENT}.yml
echo "All tests passed!"Docker統合
# ProbeをDockerコンテナで実行
docker run --rm -v $(pwd):/workspace \
-e API_TOKEN=$API_TOKEN \
probe:latest workflow.yml
# Docker Composeサービス
version: '3.8'
services:
probe:
image: probe:latest
volumes:
- ./workflows:/workflows
environment:
- API_TOKEN
- ENVIRONMENT=production
command: /workflows/monitoring.yml,/workflows/production.ymlスケジュール実行
# 定期監視用のcrontabエントリ
# 5分毎に実行
*/5 * * * * /usr/local/bin/probe /opt/workflows/monitoring.yml >> /var/log/probe.log 2>&1
# systemdタイマーユニット
[Unit]
Description=Probe Monitoring
Requires=probe-monitoring.timer
[Service]
Type=oneshot
ExecStart=/usr/local/bin/probe /opt/workflows/monitoring.yml
User=probe
Group=probe
[Install]
WantedBy=multi-user.target終了コード
Probeが返す終了コードは2つです。
| 終了コード | 意味 | 説明 |
|---|---|---|
0 | 成功 | すべてのジョブが完了し、すべてのテストが成功 |
1 | 失敗 | テストの失敗、アクションのエラー、またはワークフローを読み込めなかった場合(ファイルが無い、YAMLが不正、未知のフラグ など) |
終了コードの例
# スクリプトで終了コードをチェック
probe workflow.yml
if [ $? -eq 0 ]; then
echo "Workflow succeeded"
else
echo "Workflow failed with exit code $?"
fi
# CI/CDパイプラインで使用
probe integration-tests.yml || exit 1パフォーマンスとリソース使用量
メモリ使用量
- ベースメモリ: Probeランタイムで約10MB
- ワークフローあたり: 複雑さに応じて約1-5MB
- アクションあたり: レスポンスサイズに応じて約0.1-1MB
実行タイミング
# ワークフロー実行時間を計測
time probe workflow.yml
# 詳細モードで詳細なタイミング
probe -v workflow.yml 2>&1 | grep "Execution time"並行実行
Probeは可能な場合ジョブを並列実行します:
# 依存関係のないジョブは同時実行される
# 最大同時実行数は通常システムリソースにより制限される
# 詳細モードで実行パターンを確認
probe -v parallel-workflow.ymlトラブルシューティングコマンド
デバッグ情報
# 最大限の情報を出す
probe -v --timing workflow.yml
# バージョンとコミットを確認
probe --version
# 実行せずにジョブの依存関係を確認
probe dag workflow.ymlよくある問題
ファイルが見つからない:
probe: error: workflow file 'missing.yml' not found
# ファイルパスと権限をチェック
ls -la missing.yml権限拒否:
probe: error: permission denied reading 'workflow.yml'
# ファイル権限を修正
chmod 644 workflow.ymlYAML構文エラー:
probe: error: YAML syntax error at line 15
# YAML構文を検証
yaml-validator workflow.yml統合例
GitHub Actions
name: Probe Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Probe
run: |
curl -L https://github.com/linyows/probe/releases/latest/download/probe-linux-amd64 -o probe
chmod +x probe
sudo mv probe /usr/local/bin/
- name: Run Tests
env:
API_TOKEN: ${{ secrets.API_TOKEN }}
run: probe workflow.yml,${GITHUB_REF##*/}.ymlGitLab CI
stages:
- test
probe-test:
stage: test
image: alpine:latest
before_script:
- apk add --no-cache curl
- curl -L https://github.com/linyows/probe/releases/latest/download/probe-linux-amd64 -o /usr/local/bin/probe
- chmod +x /usr/local/bin/probe
script:
- probe workflow.yml,$CI_ENVIRONMENT_NAME.yml
variables:
API_TOKEN: $API_TOKENJenkinsパイプライン
pipeline {
agent any
environment {
API_TOKEN = credentials('api-token')
PROBE_OUTPUT = 'stream'
}
stages {
stage('Install Probe') {
steps {
sh '''
curl -L https://github.com/linyows/probe/releases/latest/download/probe-linux-amd64 -o probe
chmod +x probe
sudo mv probe /usr/local/bin/
'''
}
}
stage('Run Tests') {
steps {
sh 'probe workflow.yml,${BRANCH_NAME}.yml'
}
}
}
post {
always {
archiveArtifacts artifacts: '*.log', allowEmptyArchive: true
}
}
}高度な使用パターン
設定テンプレート
# ファイルパスで環境変数を使用
export ENV=production
probe workflow.yml,configs/${ENV}.yml
# 動的ファイル選択
WORKFLOW_FILE=$([ "$ENV" = "prod" ] && echo "prod-workflow.yml" || echo "dev-workflow.yml")
probe $WORKFLOW_FILEバッチ実行
# 複数のワークフローを実行
for workflow in workflows/*.yml; do
echo "Running $workflow..."
probe "$workflow" || echo "Failed: $workflow"
done
# 並列実行
find workflows/ -name "*.yml" | xargs -P 4 -I {} probe {}監視統合
# 監視システムとの統合
probe monitoring.yml
RESULT=$?
if [ $RESULT -ne 0 ]; then
# 監視システムにアラートを送信
curl -X POST https://monitoring.example.com/alert \
-H "Content-Type: application/json" \
-d '{"message": "Probe workflow failed", "exit_code": '$RESULT'}'
fi関連項目
- YAML設定 - 完全なYAML構文リファレンス
- アクションリファレンス - 組み込みアクションとパラメータ
- 環境変数 - サポートされているすべての環境変数
- ハウツー - 実用的な使用例
- エラーハンドリング戦略 - よくある問題と解決策