azure-pipelines-generator

Azure Pipelines Generator Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azure-pipelines-generator" with this command: npx skills add ntaksh42/agents/ntaksh42-agents-azure-pipelines-generator

Azure Pipelines Generator Skill

Azure PipelinesのYAML定義を生成するスキルです。

概要

CI/CDパイプラインをAzure Pipelines YAML形式で自動生成します。

主な機能

  • ビルドパイプライン: CI設定

  • リリースパイプライン: CD設定

  • マルチステージ: ステージ分割

  • テンプレート: 再利用可能な設定

  • 条件付き実行: ブランチ、タグ条件

  • 環境デプロイ: Dev、Staging、Production

基本パイプライン

Node.js アプリケーション

azure-pipelines.yml

trigger: branches: include: - main - develop paths: exclude: - docs/* - README.md

pool: vmImage: 'ubuntu-latest'

variables: nodeVersion: '18.x' buildConfiguration: 'Release'

stages:

  • stage: Build displayName: 'Build and Test' jobs:

    • job: BuildJob displayName: 'Build Application' steps:
      • task: NodeTool@0 displayName: 'Install Node.js' inputs: versionSpec: $(nodeVersion)

      • task: Npm@1 displayName: 'npm install' inputs: command: 'install'

      • task: Npm@1 displayName: 'npm run build' inputs: command: 'custom' customCommand: 'run build'

      • task: Npm@1 displayName: 'npm test' inputs: command: 'custom' customCommand: 'test'

      • task: PublishTestResults@2 displayName: 'Publish Test Results' condition: succeededOrFailed() inputs: testResultsFormat: 'JUnit' testResultsFiles: '**/test-results.xml'

      • task: PublishCodeCoverageResults@1 displayName: 'Publish Code Coverage' inputs: codeCoverageTool: 'Cobertura' summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml'

      • task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: dist' inputs: PathtoPublish: '$(Build.SourcesDirectory)/dist' ArtifactName: 'dist'

  • stage: Deploy_Dev displayName: 'Deploy to Development' dependsOn: Build condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) jobs:

    • deployment: DeployDev displayName: 'Deploy to Dev' environment: 'Development' strategy: runOnce: deploy: steps: - task: DownloadBuildArtifacts@0 inputs: artifactName: 'dist'

          - task: AzureWebApp@1
            displayName: 'Deploy to Azure Web App'
            inputs:
              azureSubscription: 'Azure-Connection'
              appType: 'webAppLinux'
              appName: 'myapp-dev'
              package: '$(System.ArtifactsDirectory)/dist'
      
  • stage: Deploy_Prod displayName: 'Deploy to Production' dependsOn: Build condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) jobs:

    • deployment: DeployProd displayName: 'Deploy to Production' environment: 'Production' strategy: runOnce: deploy: steps: - task: DownloadBuildArtifacts@0 inputs: artifactName: 'dist'

          - task: AzureWebApp@1
            displayName: 'Deploy to Azure Web App'
            inputs:
              azureSubscription: 'Azure-Connection'
              appType: 'webAppLinux'
              appName: 'myapp-prod'
              package: '$(System.ArtifactsDirectory)/dist'
      

.NET アプリケーション

trigger:

  • main

pool: vmImage: 'windows-latest'

variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release'

stages:

  • stage: Build jobs:
    • job: Build steps:
      • task: NuGetToolInstaller@1

      • task: NuGetCommand@2 inputs: restoreSolution: '$(solution)'

      • task: VSBuild@1 inputs: solution: '$(solution)' msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"' platform: '$(buildPlatform)' configuration: '$(buildConfiguration)'

      • task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)'

      • task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop'

Docker ビルド & プッシュ

trigger:

  • main

pool: vmImage: 'ubuntu-latest'

variables: dockerRegistryServiceConnection: 'MyDockerRegistry' imageRepository: 'myapp' containerRegistry: 'myregistry.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile' tag: '$(Build.BuildId)'

stages:

  • stage: Build jobs:

    • job: BuildAndPush steps:
      • task: Docker@2 displayName: 'Build Docker Image' inputs: command: build repository: $(imageRepository) dockerfile: $(dockerfilePath) containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag) latest

      • task: Docker@2 displayName: 'Push Docker Image' inputs: command: push repository: $(imageRepository) containerRegistry: $(dockerRegistryServiceConnection) tags: | $(tag) latest

  • stage: Deploy dependsOn: Build jobs:

    • deployment: DeployToAKS environment: 'kubernetes-prod' strategy: runOnce: deploy: steps: - task: KubernetesManifest@0 displayName: 'Deploy to AKS' inputs: action: 'deploy' kubernetesServiceConnection: 'AKS-Connection' namespace: 'production' manifests: | $(Pipeline.Workspace)/manifests/deployment.yml $(Pipeline.Workspace)/manifests/service.yml containers: '$(containerRegistry)/$(imageRepository):$(tag)'

テンプレート使用

メインパイプライン

azure-pipelines.yml

trigger:

  • main

resources: repositories: - repository: templates type: git name: PipelineTemplates ref: refs/heads/main

stages:

  • template: templates/build-template.yml@templates parameters: nodeVersion: '18.x'

  • template: templates/deploy-template.yml@templates parameters: environment: 'Production' appName: 'myapp-prod'

ビルドテンプレート

templates/build-template.yml

parameters:

  • name: nodeVersion type: string default: '18.x'

jobs:

  • job: Build pool: vmImage: 'ubuntu-latest' steps:
    • task: NodeTool@0 inputs: versionSpec: ${{ parameters.nodeVersion }}

    • script: | npm install npm run build npm test displayName: 'Build and Test'

PR トリガー

PR validation

pr: branches: include: - main - develop paths: exclude: - docs/*

trigger: none

pool: vmImage: 'ubuntu-latest'

steps:

  • task: Npm@1 displayName: 'npm install' inputs: command: 'install'

  • task: Npm@1 displayName: 'Run linter' inputs: command: 'custom' customCommand: 'run lint'

  • task: Npm@1 displayName: 'Run tests' inputs: command: 'custom' customCommand: 'test'

バージョン情報

  • スキルバージョン: 1.0.0

  • 最終更新: 2025-01-22

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

pptx-generator

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

document-summarizer

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

excel-processor

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

document-formatter

No summary provided by upstream source.

Repository SourceNeeds Review