Skip to content

Commit 189d6a6

Browse files
authored
Create pipeline to build and publish Azure SDK Java MCP to devops feed (#46040)
1 parent 908bd12 commit 189d6a6

File tree

2 files changed

+127
-38
lines changed

2 files changed

+127
-38
lines changed

.github/workflows/azure-java-sdk-mcp-ci.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
2+
trigger:
3+
branches:
4+
include:
5+
- main
6+
- feature/*
7+
- release/*
8+
- hotfix/*
9+
paths:
10+
include:
11+
- eng/tools/mcp/azure-sdk-java-mcp
12+
13+
pr:
14+
branches:
15+
include:
16+
- main
17+
- feature/*
18+
- release/*
19+
- hotfix/*
20+
paths:
21+
include:
22+
- eng/tools/mcp/azure-sdk-java-mcp
23+
24+
extends:
25+
template: /eng/pipelines/templates/stages/1es-redirect.yml
26+
parameters:
27+
stages:
28+
- stage: 'Build'
29+
variables:
30+
- template: /eng/pipelines/templates/variables/image.yml
31+
- name: NodeVersion
32+
value: '22.x'
33+
- name: ArtifactName
34+
value: 'azure-sdk-java-mcp'
35+
- name: McpToolDirectory
36+
value: 'eng/tools/mcp/azure-sdk-java-mcp'
37+
jobs:
38+
- job: 'Build'
39+
40+
pool:
41+
name: $(LINUXPOOL)
42+
image: $(LINUXVMIMAGE)
43+
os: linux
44+
45+
steps:
46+
- task: NodeTool@0
47+
inputs:
48+
versionSpec: '$(NodeVersion)'
49+
displayName: 'Use NodeJS $(NodeVersion)'
50+
51+
- script: |
52+
npm ci
53+
workingDirectory: $(McpToolDirectory)
54+
displayName: "Install npm packages for MCP tool"
55+
56+
- script: |
57+
npm run lint
58+
workingDirectory: $(McpToolDirectory)
59+
displayName: "Run ESLint validation"
60+
61+
- script: |
62+
npm run format:check
63+
workingDirectory: $(McpToolDirectory)
64+
displayName: "Check code formatting"
65+
66+
- script: |
67+
npm run test:run
68+
workingDirectory: $(McpToolDirectory)
69+
displayName: "Run tests"
70+
71+
- script: |
72+
npm run-script build
73+
workingDirectory: $(McpToolDirectory)
74+
displayName: "Build Java MCP tool"
75+
76+
- pwsh: |
77+
npm pack $(McpToolDirectory)
78+
Copy-Item ./*.tgz $(Build.ArtifactStagingDirectory)
79+
displayName: "Pack Java MCP tool"
80+
81+
- task: 1ES.PublishPipelineArtifact@1
82+
inputs:
83+
targetPath: '$(Build.ArtifactStagingDirectory)'
84+
artifactName: $(ArtifactName)
85+
86+
- ${{if and(eq(variables['Build.Reason'], 'Manual'), eq(variables['System.TeamProject'], 'internal'))}}:
87+
- stage: 'Release'
88+
dependsOn: Build
89+
condition: Succeeded()
90+
variables:
91+
- template: /eng/pipelines/templates/variables/image.yml
92+
- name: ArtifactName
93+
value: 'azure-sdk-java-mcp'
94+
- name: McpToolDirectory
95+
value: 'eng/tools/mcp/azure-sdk-java-mcp'
96+
97+
jobs:
98+
- job: PublishPackage
99+
displayName: 'Publish azure-sdk-java-mcp package to devops feed'
100+
pool:
101+
name: $(LINUXPOOL)
102+
image: $(LINUXVMIMAGE)
103+
os: linux
104+
steps:
105+
- download: current
106+
107+
- pwsh: |
108+
$detectedPackageName=Get-ChildItem $(Pipeline.Workspace)/$(ArtifactName)/*.tgz
109+
Write-Host "Detected package name: $detectedPackageName"
110+
Write-Host "##vso[task.setvariable variable=PackageArtifactFullPath]$detectedPackageName"
111+
displayName: "Find package artifact"
112+
113+
- pwsh: |
114+
@"
115+
registry=https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js/npm/registry/
116+
always-auth=true
117+
"@ | Set-Content -Path $(McpToolDirectory)/.npmrc -NoNewline
118+
displayName: "Generate .npmrc"
119+
120+
- task: NpmAuthenticate@0
121+
inputs:
122+
workingFile: $(McpToolDirectory)/.npmrc
123+
124+
- pwsh: |
125+
npm publish $(PackageArtifactFullPath) --registry https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js/npm/registry/
126+
workingDirectory: $(McpToolDirectory)
127+
displayName: "Publish package to devops feed"

0 commit comments

Comments
 (0)