...
1variables:
2 GOPATH: '$(system.defaultWorkingDirectory)/work'
3 sdkPath: '$(GOPATH)/src/github.com/$(build.repository.name)'
4
5jobs:
6 - job: 'goautorest'
7 displayName: 'Run go-autorest CI Checks'
8
9 strategy:
10 matrix:
11 Linux_Go113:
12 vm.image: 'ubuntu-18.04'
13 go.version: '1.13'
14 Linux_Go114:
15 vm.image: 'ubuntu-18.04'
16 go.version: '1.14'
17
18 pool:
19 vmImage: '$(vm.image)'
20
21 steps:
22 - task: GoTool@0
23 inputs:
24 version: '$(go.version)'
25 displayName: "Select Go Version"
26
27 - script: |
28 set -e
29 mkdir -p '$(GOPATH)/bin'
30 mkdir -p '$(sdkPath)'
31 shopt -s extglob
32 mv !(work) '$(sdkPath)'
33 echo '##vso[task.prependpath]$(GOPATH)/bin'
34 displayName: 'Create Go Workspace'
35
36 - script: |
37 set -e
38 curl -sSL https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
39 dep ensure -v
40 go install ./vendor/golang.org/x/lint/golint
41 go get github.com/jstemmer/go-junit-report
42 go get github.com/axw/gocov/gocov
43 go get github.com/AlekSi/gocov-xml
44 go get -u github.com/matm/gocov-html
45 workingDirectory: '$(sdkPath)'
46 displayName: 'Install Dependencies'
47
48 - script: |
49 go vet ./autorest/...
50 go vet ./logger/...
51 go vet ./tracing/...
52 workingDirectory: '$(sdkPath)'
53 displayName: 'Vet'
54
55 - script: |
56 go build -v ./autorest/...
57 go build -v ./logger/...
58 go build -v ./tracing/...
59 workingDirectory: '$(sdkPath)'
60 displayName: 'Build'
61
62 - script: |
63 set -e
64 go test -race -v -coverprofile=coverage.txt -covermode atomic ./autorest/... ./logger/... ./tracing/... 2>&1 | go-junit-report > report.xml
65 gocov convert coverage.txt > coverage.json
66 gocov-xml < coverage.json > coverage.xml
67 gocov-html < coverage.json > coverage.html
68 workingDirectory: '$(sdkPath)'
69 displayName: 'Run Tests'
70
71 - script: grep -L -r --include *.go --exclude-dir vendor -P "Copyright (\d{4}|\(c\)) Microsoft" ./ | tee >&2
72 workingDirectory: '$(sdkPath)'
73 displayName: 'Copyright Header Check'
74 failOnStderr: true
75 condition: succeededOrFailed()
76
77 - script: |
78 gofmt -s -l -w ./autorest/. >&2
79 gofmt -s -l -w ./logger/. >&2
80 gofmt -s -l -w ./tracing/. >&2
81 workingDirectory: '$(sdkPath)'
82 displayName: 'Format Check'
83 failOnStderr: true
84 condition: succeededOrFailed()
85
86 - script: |
87 golint ./autorest/... >&2
88 golint ./logger/... >&2
89 golint ./tracing/... >&2
90 workingDirectory: '$(sdkPath)'
91 displayName: 'Linter Check'
92 failOnStderr: true
93 condition: succeededOrFailed()
94
95 - task: PublishTestResults@2
96 inputs:
97 testRunner: JUnit
98 testResultsFiles: $(sdkPath)/report.xml
99 failTaskOnFailedTests: true
100
101 - task: PublishCodeCoverageResults@1
102 inputs:
103 codeCoverageTool: Cobertura
104 summaryFileLocation: $(sdkPath)/coverage.xml
105 additionalCodeCoverageFiles: $(sdkPath)/coverage.html
View as plain text