返回 Skill 列表
extension
分类: 开发与工程无需 API Key

ios-delivery-build

通过GitLab流水线创建和问题管理来管理iOS交付构建到QC测试。支持开发、交付、修复bug和重新交付模式。在“创建交付”、“交付构建”、“为QC构建”、“发送到测试”或“交付构建”时使用。

person作者: jakexiaohubgithub

You are managing iOS delivery builds to QC testing with GitLab integration.

Step 1: Get Current Branch

Execute immediately:

git branch --show-current

Store result as {current_branch}.

Step 2: Mode Selection

Ask user to select delivery mode:

  • develop: Create develop task and move original to testing
  • delivery: Close issues after delivery
  • bugfix: Move issues to testing status
  • redelivery: Create pipeline only, no issue management

Use AskUserQuestion with these exact options:

  • "develop - Create develop task and move original to testing"
  • "delivery - Close issues after delivery"
  • "bugfix - Move issues to testing status"
  • "redelivery - Create pipeline only"

If invalid mode after 3 attempts, abort with error.

Step 3: Collect Form Inputs

Present form template from templates.md based on selected mode.

Required for ALL modes:

  • branch (pre-filled with {current_branch})
  • scheme (default: "Payoo Merchant Sandbox")
  • recipient (from predefined list in templates.md)
  • description
  • reply_on_thread (default: "none")
  • project (default: "rnd/ios/payoo-ios-app-merchant")

Conditional fields:

  • issue_numbers: Required for develop/delivery/bugfix, NOT for redelivery
  • estimates: Required for develop/delivery, NOT for bugfix/redelivery

Parse user input and extract all field values.

Step 4: Validate Inputs

Before proceeding, validate:

  • branch exists (check with git branch --list)
  • issue_numbers are numeric (skip for redelivery)
  • recipient matches format "Name|ID" from predefined list
  • estimates count matches issue_numbers count (for delivery/develop only)
  • reply_on_thread is "none" or valid URL
  • scheme and project are non-empty

If validation fails, show specific errors and request corrections.

Step 5: Create GitLab Pipeline

Use MCP tool mobile-mcp-server/gitlab-create-pipeline-for-branch:

scheme: {scheme}
branchName: {branch}
recipient: {recipient}
replyOnThread: {reply_on_thread}
description: {description}
project: {project}

If pipeline creation fails, abort workflow with error.

Step 6: Plan Issue Management Actions

Based on mode, plan actions (see examples.md for detailed workflows):

bugfix mode:

  • For each issue in issue_numbers, plan to add label "status::totesting"

delivery mode:

  • For each issue, plan to close with corresponding estimate

develop mode:

  • Get first issue details
  • Create develop task with "[Develop]" suffix
  • Move original issue to testing
  • Close develop task with estimate

redelivery mode:

  • No issue actions needed, skip to completion

Step 7: Confirmation and Execution

For redelivery mode:

  • Display: "Pipeline created successfully. No issue management for redelivery."
  • End workflow

For other modes:

  • Display all planned actions in readable format
  • Ask: "Do you want to proceed? (yes/no)"
  • If "yes": Execute all actions sequentially, show progress
  • If "no": Abort with message about pipeline being created but issues not managed

Error Handling

  • Invalid issue IID: Skip and log warning, continue with others
  • API timeout: Retry once after 5 seconds, then fail
  • Authentication error: Abort immediately
  • Invalid branch: Abort before creating pipeline

Always provide:

  • What failed
  • Why it failed (if known)
  • What completed successfully
  • Suggested next steps

Output Format

Show clear summary:

✅ Pipeline Created
Branch: {branch}
Scheme: {scheme}
Recipient: {recipient}
Description: {description}

📋 Issue Management:
[List of planned/executed actions]

✅ Workflow Complete