asc-workflow は何をしますか?
リポジトリローカルなマルチステップ自動化の定義、検証、実行、再開、監査を、現在の asc workflow コマンドと .asc/workflow.json 設定ファイルを使って行います。ステップ出力や安全なリリース / TestFlight ワークフローにも対応しています。
概要
asc workflow は、リポジトリのルートにある .asc/workflow.json ファイルで定義されたワークフローを管理するためのコマンドラインツールです。各ワークフローは複数のステップから構成され、各ステップは順番に実行されます。ステップの出力は後続のステップで参照可能で、安全なアプリのリリースやTestFlightへのアップロードなどの複雑な自動化を実現できます。
インストール
asc workflow は、asc CLI ツールの一部として提供されます。以下のコマンドでインストールできます。
npm install -g asc-cli
または、プロジェクトの依存関係として追加します。
npm install --save-dev asc-cli
設定ファイル
ワークフローは、リポジトリのルートにある .asc/workflow.json ファイルで定義します。以下は設定例です。
{
"workflows": {
"release": {
"description": "安全なアプリリリースワークフロー",
"steps": [
{
"name": "バージョン更新",
"command": "npm version patch",
"output": "version"
},
{
"name": "ビルド",
"command": "npm run build"
},
{
"name": "TestFlight アップロード",
"command": "npx asc testflight-upload",
"depends_on": ["バージョン更新", "ビルド"]
}
]
}
}
}
使用方法
ワークフローの一覧表示
asc workflow list
ワークフローの実行
asc workflow run release
ワークフローの再開
中断されたワークフローを再開するには、以下のコマンドを使用します。
asc workflow resume release
ワークフローの検証
設定ファイルの構文や依存関係を検証します。
asc workflow validate
ワークフローの監査
実行ログやステップの出力を監査します。
asc workflow audit release
ステップ出力
各ステップは、後続のステップで利用可能な出力を生成できます。出力は、環境変数 ASC_STEP_OUTPUT_<ステップ名> として、または JSON の $ref 構文を使って参照できます。
{
"steps": [
{
"name": "バージョン取得",
"command": "echo \"1.0.0\"",
"output": "version"
},
{
"name": "タグ作成",
"command": "git tag v${ASC_STEP_OUTPUT_バージョン取得}"
}
]
}
安全なリリースワークフロー
asc workflow は、安全なリリースをサポートします。承認ステップやロールバック機構を組み込むことができます。
{
"workflows": {
"safe-release": {
"description": "承認付き安全リリース",
"steps": [
{
"name": "ビルド",
"command": "npm run build"
},
{
"name": "承認待ち",
"type": "approval",
"message": "リリースを承認しますか?"
},
{
"name": "TestFlight アップロード",
"command": "npx asc testflight-upload"
}
]
}
}
}
TestFlight ワークフロー
TestFlight へのアップロードを自動化するワークフローを定義できます。
{
"workflows": {
"testflight": {
"description": "TestFlight ビルドアップロード",
"steps": [
{
"name": "アーカイブ",
"command": "xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -archivePath ./build/MyApp.xcarchive archive"
},
{
"name": "エクスポート",
"command": "xcodebuild -exportArchive -archivePath ./build/MyApp.xcarchive -exportPath ./build/ -exportOptionsPlist exportOptions.plist"
},
{
"name": "TestFlight アップロード",
"command": "npx asc testflight-upload --ipa ./build/MyApp.ipa"
}
]
}
}
}
トラブルシューティング
asc: command not found:asc-cliがインストールされていることを確認してください。No workflow file found: リポジトリのルートに.asc/workflow.jsonファイルが存在することを確認してください。Step failed: 各ステップのコマンドが正しいこと、依存関係が満たされていることを確認してください。