generate_pipeline_yaml
Generate YAML configuration for Alibaba Cloud DevOps pipelines to preview, debug, or manually deploy without creating the pipeline.
Instructions
[Pipeline Management] Generate only the YAML configuration for a pipeline without creating it.
📋 Use Cases:
Preview YAML before creating pipeline
Generate YAML for manual deployment
Debug pipeline configuration
📖 Recommended Workflow:
🎯 Parse user description for explicit parameters
🔍 If missing context, prefer IDE detection (terminal + file reading) over API calls
🚀 Call this tool with collected parameters
💡 Parameter Collection Strategy:
For QUICK pipeline creation: Use IDE detection (git config, file reading)
For PRECISE parameter selection: Consider list_repositories, list_service_connections when needed
Balance efficiency vs. accuracy based on user intent
⚡ Built-in capabilities: Handles default service connections internally, auto-extracts project name from repo URL
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | Organization ID, can be found in the basic information page of the organization admin console | |
| name | Yes | Pipeline name (required). LLM should generate a meaningful name based on user's request | |
| buildLanguage | Yes | Programming language (REQUIRED). LLM should detect from project files: pom.xml→java, package.json→nodejs, requirements.txt→python, go.mod→go, *.csproj→dotnet | |
| buildTool | Yes | Build tool (REQUIRED). LLM should infer from buildLanguage and project files: java+pom.xml→maven, java+build.gradle→gradle, nodejs+package-lock.json→npm, nodejs+yarn.lock→yarn, python→pip, go→go, dotnet→dotnet | |
| deployTarget | No | Deployment target from user description. vm: Virtual Machine/Host deployment, k8s: Kubernetes deployment, none: Build only without deployment. Default: none | |
| repoUrl | No | Repository URL (LLM should get from 'git config --get remote.origin.url') | |
| branch | No | Git branch (LLM should get from 'git branch --show-current') | |
| serviceName | No | Service name (LLM can derive from repository name or project directory name) | |
| serviceConnectionId | No | Service connection UUID for repository access | |
| jdkVersion | No | JDK version for Java projects (LLM should read from pom.xml or gradle.properties). Options: 1.6, 1.7, 1.8, 11, 17, 21. Default: 1.8 | |
| mavenVersion | No | Maven version for Java projects. Options: 3.6.1, 3.6.3, 3.8.4, 3.9.3. Default: 3.6.3 | |
| nodeVersion | No | Node.js version for Node projects (LLM should read from package.json engines.node or .nvmrc). Options: 16.8, 18.12, 20. Default: 18.12 | |
| pythonVersion | No | Python version for Python projects (LLM should read from .python-version or pyproject.toml). Options: 3.9, 3.12. Default: 3.12 | |
| goVersion | No | Go version for Go projects (LLM should read from go.mod). Options: 1.19.x, 1.20.x, 1.21.x. Default: 1.21.x | |
| kubectlVersion | No | Kubectl version for Kubernetes apply. Options: 1.25.16, 1.26.12, 1.27.9. Default: 1.27.9 | |
| buildCommand | No | Custom build command to override default | |
| testCommand | No | Custom test command to override default | |
| uploadType | No | Artifact upload type. flowPublic: Yunxiao public storage space, packages: Organization private generic package repository. Default: packages | |
| artifactName | No | Custom artifact name. Default: 'Artifacts_${PIPELINE_ID}' | |
| artifactVersion | No | Artifact version number, required when uploadType is packages. Default: '1.0' | |
| packagesServiceConnection | No | Packages service connection UUID, required when uploadType is packages | |
| packagesRepoId | No | Packages generic repository ID, required when uploadType is packages. Default: 'flow_generic_repo' | |
| includePathInArtifact | No | Whether to include full path in artifact. Default: false | |
| machineGroupId | No | Machine group UUID for VM deployment (required when deployTarget=vm) | |
| executeUser | No | User for executing deployment scripts (root, admin). Default: root | |
| artifactDownloadPath | No | Path to download artifacts on target machine for VM deployment. Default: /home/admin/app/package.tgz | |
| deployCommand | No | Custom deploy command for VM deployment | |
| pauseStrategy | No | Pause strategy for VM deployment. firstBatchPause: The first batch is paused. noPause: No pause. eachBatchPause: Pause each batch. Default: firstBatchPause | |
| batchNumber | No | Number of batches for VM deployment. Default: 2 | |
| kubernetesClusterId | No | Kubernetes cluster ID for K8s deployment (required when deployTarget=k8s) | |
| namespace | No | Kubernetes namespace for K8s deployment | |
| dockerImage | No | Docker image name for container deployment | |
| yamlPath | No | Path to Kubernetes YAML file for K8s deployment |