Skip to content

Commit aaf07b9

Browse files
committed
Set up CI with Azure Pipelines
[skip ci]
1 parent 078b4d5 commit aaf07b9

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

azure-pipelines.yml

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
trigger:
2+
branches:
3+
include:
4+
- '*'
5+
6+
pr:
7+
autoCancel: true
8+
9+
pool:
10+
vmImage: ubuntu-latest
11+
12+
variables:
13+
buildVSCode: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
14+
15+
jobs:
16+
- job: buildGo
17+
displayName: "Build WhaleLint"
18+
steps:
19+
- task: GoTool@0
20+
displayName: "Install Go"
21+
inputs:
22+
version: '1.15.6'
23+
- task: Go@0
24+
displayName: "Install Go dependencies"
25+
inputs:
26+
command: 'get'
27+
arguments: '-d'
28+
workingDirectory: '$(System.DefaultWorkingDirectory)'
29+
- task: Go@0
30+
displayName: "Build WhaleLint"
31+
inputs:
32+
command: 'build'
33+
workingDirectory: '$(System.DefaultWorkingDirectory)'
34+
- task: Go@0
35+
inputs:
36+
command: 'test'
37+
arguments: '-v ./...'
38+
workingDirectory: '$(System.DefaultWorkingDirectory)'
39+
displayName: "Run tests"
40+
- task: Go@0
41+
displayName: "Generate coverage"
42+
inputs:
43+
command: 'test'
44+
arguments: "-coverprofile=coverage.txt -covermode=atomic ./..."
45+
- script: ls -lah $(Agent.BuildDirectory)
46+
- script: ls -lah '$(Build.ArtifactStagingDirectory)'
47+
- script: pwd
48+
- task: PublishPipelineArtifact@1
49+
inputs:
50+
targetPath: $(System.DefaultWorkingDirectory)/whalelint
51+
artifactName: whalelint
52+
53+
- job: BuildVSCodeExtension
54+
displayName: "Build VSCode Extension"
55+
dependsOn: buildGo
56+
steps:
57+
- task: NodeTool@0
58+
displayName: 'Install Node.js'
59+
inputs:
60+
versionSpec: '15.6.x'
61+
- task: CmdLine@2
62+
displayName: 'npm install'
63+
inputs:
64+
script: |
65+
npm install && \
66+
npm install -g vsce
67+
workingDirectory: '$(System.DefaultWorkingDirectory)/plugins/vscode/'
68+
- task: DownloadPipelineArtifact@2
69+
inputs:
70+
artifact: whalelint
71+
path: $(System.DefaultWorkingDirectory)/plugins/vscode/
72+
- task: CmdLine@2
73+
displayName: 'Package Extension'
74+
inputs:
75+
script: vsce package -o whalelint.vsix
76+
workingDirectory: '$(System.DefaultWorkingDirectory)/plugins/vscode/'
77+
- task: PublishPipelineArtifact@1
78+
inputs:
79+
targetPath: '$(System.DefaultWorkingDirectory)/plugins/vscode/whalelint.vsix'
80+
artifactName: whalelint-vscode
81+
82+
- job: BuildJetBrainsPlugin
83+
displayName: "Build JetBrains Plugin"
84+
dependsOn: buildGo
85+
steps:
86+
- task: DownloadPipelineArtifact@2
87+
inputs:
88+
artifact: whalelint
89+
path: $(System.DefaultWorkingDirectory)/
90+
- task: Gradle@2
91+
inputs:
92+
workingDirectory: '$(System.DefaultWorkingDirectory)/plugins/jetbrains/'
93+
gradleWrapperFile: '$(System.DefaultWorkingDirectory)/plugins/jetbrains/gradlew'
94+
gradleOptions: '-Xmx3072m'
95+
publishJUnitResults: false
96+
tasks: 'buildPlugin'
97+
- task: PublishPipelineArtifact@1
98+
inputs:
99+
targetPath: '$(System.DefaultWorkingDirectory)/plugins/jetbrains/build/distributions/'
100+
artifactName: whalelint-jetbrains
101+

0 commit comments

Comments
 (0)