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