Azure Pipelines Generator

akin-ozer/cc-devops-skills/devops-skills-plugin/skills/azure-pipelines-generator

作者 akin-ozer276af751e659315aaf56d3ad13d7c26f4e72e28a无许可证320 个星标收录于 2026年10月9日更新于 2026年10月9日仓库2个月前更新

Generate/create/scaffold azure-pipelines.yml, stages, jobs, steps, or reusable templates.

包含脚本DevOps & Cloud
AI 生成的概览

生成可用于生产的 Azure DevOps 管道 YAML,包括阶段、作业、步骤和可复用模板。

功能
该技能为 Azure DevOps 生成 Azure Pipelines YAML,涵盖基础 CI、多阶段 CI/CD、Docker、Kubernetes、特定语言以及基于模板的管道。它会判定请求模式、收集必要输入、读取随附的参考文档和示例,并按照安全性、版本固定、可靠性、性能和可维护性检查清单进行生成。输出包括管道 YAML 或模板集、所需配置(如服务连接、变量组和环境)、验证状态、假设以及所用参考资料。
适用场景
当用户要求创建或重新设计 Azure Pipelines YAML 时使用,例如新建 azure-pipelines.yml、包含预发布和生产环境的多阶段管道、可复用模板,或将现有 CI 流程转换为 Azure Pipelines。该文档说明其不适用于仅做验证的请求,此类请求应交给单独的验证器技能。
运行要求
需要在可访问随附文档和示例 YAML 文件的智能体环境中运行。它附带一个可执行测试脚本(tests/test_template_regressions.py),并引用验证器技能或 shell 脚本作为验证回退方案。可选的外部文档查询使用 Context7 MCP 工具或 Microsoft Learn 搜索;网络或工具不可用时会以残余风险说明处理。技能本身不需要凭据;生成的管道会引用服务连接、变量组和机密。

Azure Pipelines Generator

Generate production-ready Azure DevOps pipeline YAML with deterministic steps, explicit fallbacks, and clear completion criteria.

Trigger Guidance

Use this skill when the user asks to generate or redesign Azure Pipelines YAML, for example:

  • "Create azure-pipelines.yml for my Node service."
  • "Build a multi-stage Azure DevOps pipeline with staging and production."
  • "Generate Azure pipeline templates for reuse across repos."
  • "Convert this CI flow to Azure Pipelines."

Do not use this skill for validation-only requests. For validation-only work, use azure-pipelines-validator.

Execution Model

Normative keywords:

  • MUST: required
  • SHOULD: default unless user asks otherwise
  • MAY: optional

Deterministic sequence:

  1. Classify request mode.
  2. Capture minimum required inputs.
  3. Load minimum references (progressive disclosure).
  4. Generate YAML using the quality checklist.
  5. Validate (validator skill, script fallback, or manual fallback).
  6. Return output in the required report format.

If a step cannot run due to environment limits, use the fallback in that step and continue.

1) Classify Request Mode

Choose exactly one primary mode:

  • Basic CI: build/test/lint for one stack.
  • Multi-stage CI/CD: build -> test -> deploy with environment tracking.
  • Docker: image build/push and optional deploy.
  • Kubernetes: image build/push plus Kubernetes deployment.
  • Language-specific: .NET, Node.js, Python, Go, Java focused.
  • Template-based: reusable templates plus thin root pipeline.
  • Snippet-only: partial YAML requested, not full pipeline.

Mode-to-example mapping:

  • Basic CI -> examples/basic-ci.yml
  • Multi-stage CI/CD -> examples/multi-stage-cicd.yml
  • .NET -> examples/dotnet-cicd.yml
  • Python -> examples/python-cicd.yml
  • Go -> examples/go-cicd.yml
  • Kubernetes -> examples/kubernetes-deploy.yml
  • Template-based -> examples/template-usage.yml + examples/templates/*.yml

2) Capture Required Inputs

Collect these before generation:

  • App stack and package manager
  • Build/test commands and report expectations
  • Deployment target (none, Azure service, Docker registry, Kubernetes)
  • Environment flow (dev/staging/prod) and branch gates
  • Service connections, variable groups, secret handling
  • Template requirement (yes/no)

Safe defaults when missing:

  • CI branches: main, develop
  • Production deploy branch: main only
  • Agent image: pinned image (for example ubuntu-22.04)
  • Deploy image tag: immutable ($(Build.BuildId)), never deploy latest

If key details are missing, state assumptions explicitly in final output.

3) Load References (Progressive Disclosure)

Read local references first.

Always read:

  • docs/yaml-schema.md
  • docs/best-practices.md

Read conditionally:

  • docs/tasks-reference.md when selecting tasks/inputs
  • docs/templates-guide.md only for template-based mode

Then read only the closest example(s) from the mode mapping above.

Fallback behavior for missing references:

  • Missing example: use nearest mode example and note substitution.
  • Missing doc section: continue with known conventions and mark uncertainty.
  • Snippet-only request: read only the minimum needed for safe output.

The final response MUST include:

  • References used
  • References skipped or missing
  • Impact

4) External Docs Escalation (Only When Needed)

Escalate beyond local docs only when:

  • required task info is not in local docs
  • task version compatibility is unclear
  • troubleshooting a task-specific failure

Use this order:

  1. Context7 (mcp__context7__resolve-library-id -> mcp__context7__query-docs)
  2. Official docs search (Microsoft Learn first)

If network/tools are unavailable, proceed with best-known local guidance and add a residual-risk note.

5) Pipeline Generation Checklist

Apply all items below unless user asks for a narrow snippet.

Security:

  • Never hardcode secrets.
  • Use service connections and variable groups/secrets.
  • Use immutable deploy image tags.

Versioning:

  • Pin vmImage to explicit version, not *-latest.
  • Pin task major versions (Task@N).
  • @0 is allowed only when that task uses major 0.

Reliability:

  • Use explicit dependsOn.
  • Add timeoutInMinutes for long-running jobs.
  • Use branch-gated deployment condition rules.
  • Use deployment jobs with environment for deploy stages.

Performance:

  • Use Cache@2 where it improves dependency install time.
  • Use shallow checkout when full history is not required.
  • Publish only required artifacts.

Testing/observability:

  • Run lint/tests in CI.
  • Publish test results with condition: succeededOrFailed().
  • Publish coverage when available.

Maintainability:

  • Add displayName for stages/jobs/key steps.
  • Use templates when logic repeats.
  • Add short comments only for non-obvious logic.

6) Validation Workflow

Default path (MUST for full pipeline generation):

  1. Generate or update YAML.
  2. Validate with azure-pipelines-validator.
  3. Fix findings.
  4. Re-run validation until no blocking issues remain.

Script fallback if validator skill is unavailable but local validator scripts exist:

bash
bash devops-skills-plugin/skills/azure-pipelines-validator/scripts/validate_azure_pipelines.sh <pipeline-file>

Manual fallback when neither skill nor script can run:

  1. YAML structure/indentation sanity
  2. Hierarchy sanity (stages -> jobs -> steps)
  3. Task format sanity (Task@Major)
  4. Secret exposure scan (no plaintext credentials/tokens)
  5. Deployment safety scan (environment usage, immutable deploy tags)

When fallback is used, final response MUST include:

  • Validation status: Manual fallback
  • Checks performed
  • Residual risk

Validation MAY be skipped only for:

  • snippet-only YAML
  • documentation-only examples
  • explicit user request to skip validation

7) Output Contract

Final response MUST include:

  1. Pipeline YAML (or template set)
  2. Required setup:
    • service connections
    • variable groups/secrets
    • environments and approvals/checks
  3. Validation result:
    • validator status, script status, or manual fallback status
  4. Assumptions
  5. References used/skipped and impact
  6. Optional next improvements

8) Canonical Example Flows

Example A: Full multi-stage generation

  1. Select mode: Multi-stage CI/CD.
  2. Capture stack/deploy/service-connection inputs.
  3. Read docs/yaml-schema.md, docs/best-practices.md, and examples/multi-stage-cicd.yml.
  4. Add requested customizations (stages, branch gates, environments, tasks).
  5. Validate with azure-pipelines-validator; fix and re-run.
  6. Return YAML + setup + validation + assumptions + references.

Example B: Quick snippet generation

  1. Select mode: Snippet-only.
  2. Read only the minimum required reference section.
  3. Generate focused YAML snippet with safe defaults.
  4. Skip full validation and state Validation status: Skipped (snippet-only).
  5. Return snippet + assumptions + references.

9) Definition of Done

The execution is complete only when all applicable checks pass:

  • Request mode is explicitly chosen.
  • Assumptions are explicit for missing inputs.
  • YAML follows checklist requirements (security, versioning, reliability, performance, maintainability).
  • Validation path is documented (validator, script fallback, or manual fallback).
  • Final response follows the output contract, including references and impact.

来源与署名

来源:akin-ozer/cc-devops-skills位于devops-skills-plugin/skills/azure-pipelines-generator提交276af75

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架