Skip to content

Commit 0c144e2

Browse files
eng, add pipeline to run CI on a different submodule commit (#3090)
1 parent 4bb083b commit 0c144e2

8 files changed

+407
-334
lines changed
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
trigger: none
2+
pr: none
3+
4+
parameters:
5+
- name: SubmoduleCommit
6+
displayName: 'Commit ID of the Submodule'
7+
type: string
8+
9+
jobs:
10+
- template: /eng/pipelines/jobs/build-autorest.yml
11+
parameters:
12+
SubmoduleCommit: ${{ parameters.SubmoduleCommit }}
13+
- template: /eng/pipelines/jobs/build-autorest-mgmt.yml
14+
parameters:
15+
SubmoduleCommit: ${{ parameters.SubmoduleCommit }}
16+
- template: /eng/pipelines/jobs/build-typespec.yml
17+
parameters:
18+
SubmoduleCommit: ${{ parameters.SubmoduleCommit }}

eng/pipelines/ci-typespec-java.yaml

+3-98
Original file line numberDiff line numberDiff line change
@@ -24,101 +24,6 @@ pr:
2424
- 'protocol*'
2525

2626
jobs:
27-
- job: Build
28-
29-
timeoutInMinutes: 60
30-
31-
variables:
32-
- template: /eng/pipelines/variables/globals.yml
33-
- template: /eng/pipelines/variables/image.yml
34-
- name: isMain
35-
value: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
36-
37-
pool:
38-
name: $(LINUXPOOL)
39-
image: $(LINUXVMIMAGE)
40-
os: linux
41-
42-
steps:
43-
- checkout: self
44-
submodules: true
45-
46-
- task: NodeTool@0
47-
displayName: 'Install Node.js $(NodeVersion)'
48-
inputs:
49-
versionSpec: '$(NodeVersion)'
50-
51-
- template: /eng/pipelines/steps/cache-maven-repository.yml
52-
parameters:
53-
JobType: 'TypeSpec'
54-
55-
- task: PowerShell@2
56-
retryCountOnTaskFailure: 1
57-
displayName: 'Build and Generate Code'
58-
inputs:
59-
pwsh: true
60-
filePath: Generate-TypeSpec.ps1
61-
62-
- script: |
63-
git status
64-
git diff
65-
displayName: 'Git Diff'
66-
67-
# - script: |
68-
# npm run test
69-
# displayName: 'Run TypeScript Unit Tests'
70-
# workingDirectory: ./typespec-extension
71-
72-
# - script: |
73-
# [ -z "`git status --porcelain -- :!package-lock.json`" ]
74-
# displayName: 'Check no Diff'
75-
76-
- task: Maven@4
77-
displayName: 'Verify Test Code'
78-
inputs:
79-
mavenPomFile: 'typespec-tests/pom.xml'
80-
goals: 'verify'
81-
options: '$(DefaultOptions) -DskipTests -T 1C'
82-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
83-
javaHomeOption: 'JDKVersion'
84-
jdkVersionOption: $(JavaVersion)
85-
jdkArchitectureOption: 'x64'
86-
publishJUnitResults: false
87-
88-
- script: |
89-
npx --no-install tsp-spector server start ./node_modules/@typespec/http-specs/specs ./node_modules/@azure-tools/azure-http-specs/specs --coverageFile ./tsp-spector-coverage-java.json
90-
displayName: 'Start Spector Test Server'
91-
workingDirectory: ./typespec-tests
92-
93-
- task: Maven@4
94-
displayName: 'Run TypeSpec Tests'
95-
inputs:
96-
mavenPomFile: pom.xml
97-
goals: 'clean test'
98-
options: '$(DefaultOptions) -PtestTsp -pl typespec-tests -DtrimStackTrace=false'
99-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
100-
javaHomeOption: 'JDKVersion'
101-
jdkVersionOption: $(JavaVersion)
102-
jdkArchitectureOption: 'x64'
103-
publishJUnitResults: false
104-
105-
- script: |
106-
npx --no-install tsp-spector server stop
107-
displayName: 'Stop Spector Test Server'
108-
workingDirectory: ./typespec-tests
109-
110-
- publish: $(Build.SourcesDirectory)/typespec-tests/tsp-spector-coverage-java.json
111-
artifact: CoverageReport
112-
displayName: 'Publish Spector Coverage Report'
113-
114-
- task: AzureCLI@2
115-
displayName: 'Upload to Spector Coverage Report Dashboard'
116-
condition: eq(variables.isMain, 'true')
117-
inputs:
118-
azureSubscription: "TypeSpec Storage"
119-
scriptType: "bash"
120-
scriptLocation: "inlineScript"
121-
inlineScript: npx --no-install tsp-spector upload-coverage --coverageFile ./tsp-spector-coverage-java.json --generatorName "@azure-tools/typespec-java" --storageAccountName typespec --containerName coverages --generatorMode azure --generatorVersion $(node -p -e "require('../typespec-extension/package.json').version")
122-
workingDirectory: ./typespec-tests
123-
124-
- template: /eng/pipelines/steps/cleanup-maven-local-cache.yml
27+
- template: /eng/pipelines/jobs/build-typespec.yml
28+
parameters:
29+
UploadSpectorReport: true

eng/pipelines/ci.yaml

+1-164
Original file line numberDiff line numberDiff line change
@@ -20,167 +20,4 @@ pr:
2020
- 'typespec*'
2121

2222
jobs:
23-
- job: Build
24-
25-
timeoutInMinutes: 60
26-
27-
variables:
28-
- template: /eng/pipelines/variables/globals.yml
29-
- template: /eng/pipelines/variables/image.yml
30-
31-
pool:
32-
name: $(LINUXPOOL)
33-
image: $(LINUXVMIMAGE)
34-
os: linux
35-
36-
steps:
37-
- checkout: self
38-
submodules: true
39-
40-
- script: |
41-
git checkout .
42-
git apply ../core.diff --ignore-whitespace
43-
displayName: 'Patch core'
44-
workingDirectory: ./core
45-
46-
- task: NodeTool@0
47-
displayName: 'Install Node.js $(NodeVersion)'
48-
inputs:
49-
versionSpec: '$(NodeVersion)'
50-
51-
- template: /eng/pipelines/steps/cache-maven-repository.yml
52-
parameters:
53-
JobType: 'Autorest'
54-
55-
- task: Maven@4
56-
displayName: 'Build and Package'
57-
inputs:
58-
mavenPomFile: pom.xml
59-
goals: 'clean install'
60-
options: '$(DefaultOptions) -P local -T 1C'
61-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
62-
javaHomeOption: 'JDKVersion'
63-
jdkVersionOption: $(JavaVersion)
64-
jdkArchitectureOption: 'x64'
65-
publishJUnitResults: false
66-
67-
- script: |
68-
npm install -g autorest
69-
npm ci
70-
displayName: 'Prepare Environment for Generation'
71-
72-
- task: PowerShell@2
73-
displayName: 'Generate Code'
74-
inputs:
75-
pwsh: true
76-
filePath: Generate.ps1
77-
78-
- script: |
79-
git status
80-
git diff --ignore-submodules
81-
displayName: 'Git Diff'
82-
83-
- script: |
84-
[ -z "`git status --ignore-submodules --porcelain`" ]
85-
displayName: 'Check no Diff'
86-
87-
- script: |
88-
npm run testserver-run &
89-
displayName: 'Start Testserver'
90-
91-
- task: Maven@4
92-
displayName: 'Run Vanilla Tests'
93-
inputs:
94-
mavenPomFile: pom.xml
95-
goals: 'clean test'
96-
options: '$(DefaultOptions) -DtestVanilla -pl vanilla-tests -DtrimStackTrace=false'
97-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
98-
javaHomeOption: 'JDKVersion'
99-
jdkVersionOption: $(JavaVersion)
100-
jdkArchitectureOption: 'x64'
101-
publishJUnitResults: false
102-
103-
- task: PublishTestResults@2
104-
inputs:
105-
mergeTestResults: true
106-
testRunTitle: 'vanilla-tests'
107-
searchFolder: '$(System.DefaultWorkingDirectory)/vanilla-tests/'
108-
condition: always()
109-
110-
- task: Maven@4
111-
displayName: 'Run Azure Tests'
112-
inputs:
113-
mavenPomFile: pom.xml
114-
goals: 'clean test'
115-
options: '$(DefaultOptions) -DtestAzure -pl azure-tests -DtrimStackTrace=false'
116-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
117-
javaHomeOption: 'JDKVersion'
118-
jdkVersionOption: $(JavaVersion)
119-
jdkArchitectureOption: 'x64'
120-
publishJUnitResults: false
121-
122-
- task: PublishTestResults@2
123-
inputs:
124-
mergeTestResults: true
125-
testRunTitle: 'azure-tests'
126-
searchFolder: '$(System.DefaultWorkingDirectory)/azure-tests/'
127-
condition: always()
128-
129-
- task: Maven@4
130-
displayName: 'Run Protocol Tests'
131-
inputs:
132-
mavenPomFile: pom.xml
133-
goals: 'clean test'
134-
options: '$(DefaultOptions) -DtestProtocol -pl protocol-tests -DtrimStackTrace=false'
135-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
136-
javaHomeOption: 'JDKVersion'
137-
jdkVersionOption: $(JavaVersion)
138-
jdkArchitectureOption: 'x64'
139-
publishJUnitResults: false
140-
141-
- task: PublishTestResults@2
142-
inputs:
143-
mergeTestResults: true
144-
testRunTitle: 'protocol-tests'
145-
searchFolder: '$(System.DefaultWorkingDirectory)/protocol-tests/'
146-
condition: always()
147-
148-
- script: |
149-
npm run testserver-stop
150-
displayName: 'Stop Testserver'
151-
152-
- script: |
153-
cat coverage/report-vanilla.json || true
154-
cat coverage/report-azure.json || true
155-
cat coverage/report-dpg.json || true
156-
displayName: 'Display Coverage Data'
157-
158-
- task: Maven@4
159-
displayName: 'Verify Javadoc of Protocol Tests'
160-
inputs:
161-
mavenPomFile: protocol-tests/pom.xml
162-
goals: 'javadoc:javadoc'
163-
options: '$(DefaultOptions)'
164-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
165-
javaHomeOption: 'JDKVersion'
166-
jdkVersionOption: $(JavaVersion)
167-
jdkArchitectureOption: 'x64'
168-
publishJUnitResults: false
169-
170-
- task: Maven@4
171-
displayName: 'Run Protocol Resilience Tests'
172-
inputs:
173-
mavenPomFile: protocol-resilience-test/pom.xml
174-
goals: 'package revapi:check'
175-
options: '$(DefaultOptions)'
176-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
177-
javaHomeOption: 'JDKVersion'
178-
jdkVersionOption: $(JavaVersion)
179-
jdkArchitectureOption: 'x64'
180-
publishJUnitResults: false
181-
182-
- script: |
183-
./protocol-sdk-integration-tests/test.py
184-
displayName: 'Run Protocol Test on SDK Integration'
185-
186-
- template: /eng/pipelines/steps/cleanup-maven-local-cache.yml
23+
- template: /eng/pipelines/jobs/build-autorest.yml

eng/pipelines/fluent_integration.yaml

+1-72
Original file line numberDiff line numberDiff line change
@@ -19,75 +19,4 @@ pr:
1919
- 'typespec*'
2020

2121
jobs:
22-
- job: 'Build'
23-
timeoutInMinutes: 60
24-
25-
variables:
26-
- template: /eng/pipelines/variables/globals.yml
27-
- template: /eng/pipelines/variables/image.yml
28-
29-
pool:
30-
name: $(LINUXPOOL)
31-
image: $(LINUXVMIMAGE)
32-
os: linux
33-
34-
steps:
35-
- checkout: self
36-
submodules: true
37-
38-
- script: |
39-
git checkout .
40-
git apply ../core.diff --ignore-whitespace
41-
displayName: 'Patch core'
42-
workingDirectory: ./core
43-
44-
- task: NodeTool@0
45-
inputs:
46-
versionSpec: '$(NodeVersion)'
47-
48-
- script: npm install autorest -g
49-
50-
- template: /eng/pipelines/steps/cache-maven-repository.yml
51-
parameters:
52-
JobType: 'Fluent Integration'
53-
54-
- task: Maven@4
55-
displayName: 'Build and Package'
56-
inputs:
57-
mavenPomFile: pom.xml
58-
goals: 'clean install'
59-
options: '$(DefaultOptions) -P local -T 1C -DskipTests'
60-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
61-
javaHomeOption: 'JDKVersion'
62-
jdkVersionOption: $(JavaVersion)
63-
jdkArchitectureOption: 'x64'
64-
publishJUnitResults: false
65-
66-
- task: PowerShell@2
67-
displayName: 'Generate Code'
68-
inputs:
69-
pwsh: true
70-
filePath: fluent-tests/Initialize-Tests.ps1
71-
workingDirectory: ./fluent-tests
72-
73-
- task: Maven@4
74-
displayName: 'Run Tests'
75-
inputs:
76-
mavenPomFile: 'pom.xml'
77-
mavenOptions: '$(MemoryOptions) $(LoggingOptions)'
78-
javaHomeOption: 'JDKVersion'
79-
jdkVersionOption: $(JavaVersion)
80-
jdkArchitectureOption: 'x64'
81-
publishJUnitResults: true
82-
testResultsFiles: '**/TEST-*.xml'
83-
goals: 'clean install'
84-
options: '$(DefaultOptions) -P local,testFluent -T 1C'
85-
86-
- task: PublishCodeCoverageResults@1
87-
inputs:
88-
codeCoverageTool: 'JaCoCo'
89-
summaryFileLocation: fluentgen/target/site/test-coverage/jacoco.xml
90-
reportDirectory: fluentgen/target/site/test-coverage/
91-
failIfCoverageEmpty: false
92-
93-
- template: /eng/pipelines/steps/cleanup-maven-local-cache.yml
22+
- template: /eng/pipelines/jobs/build-autorest-mgmt.yml

0 commit comments

Comments
 (0)