diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9dc7b82e01ab..285e3ace7074 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,3 +1,13 @@ +trigger: + paths: + exclude: + - sdk/ + +pr: + paths: + exclude: + - sdk/ + jobs: - job: Build_Test strategy: @@ -18,6 +28,7 @@ jobs: GOPATH: '$(system.defaultWorkingDirectory)/work' sdkPath: '$(GOPATH)/src/github.com/$(build.repository.name)' IGNORE_BREAKING_CHANGES: true + go.list.filter: 'grep -v vendor | grep -v azure-sdk-for-go/sdk' steps: - script: | @@ -37,13 +48,13 @@ jobs: go get -u golang.org/x/lint/golint workingDirectory: '$(sdkPath)' displayName: 'Install Dependencies' - - script: go vet $(go list ./... | grep -v vendor) + - script: go vet $(go list ./... $(go.list.filter)) workingDirectory: '$(sdkPath)' displayName: 'Vet' - - script: go build -v $(go list ./... | grep -v vendor) + - script: go build -v $(go list ./... $(go.list.filter)) workingDirectory: '$(sdkPath)' displayName: 'Build' - - script: go test $(dirname $(find . -path ./vendor -prune -o -name '*_test.go' -print) | sort -u) + - script: go test $(dirname $(find . -path ./vendor -prune -o -path ./sdk -prune -o -name '*_test.go' -print) | sort -u) workingDirectory: '$(sdkPath)' displayName: 'Run Tests' - script: go run ./tools/apidiff/main.go packages ./services FETCH_HEAD~1 FETCH_HEAD --copyrepo --breakingchanges || $IGNORE_BREAKING_CHANGES diff --git a/sdk/ci.yml b/sdk/ci.yml new file mode 100644 index 000000000000..2b38ff82ec02 --- /dev/null +++ b/sdk/ci.yml @@ -0,0 +1,67 @@ +trigger: + paths: + include: + - sdk/ + +pr: + paths: + include: + - sdk/ + +jobs: + - job: Build_Test + strategy: + matrix: + Linux_Go113: + vm.image: 'ubuntu-18.04' + go.version: '1.13' + GOROOT: '/usr/local/go$(go.version)' + + pool: + vmImage: $(vm.image) + + variables: + GOPATH: '$(system.defaultWorkingDirectory)/work' + sdkPath: '$(GOPATH)/src/github.com/$(build.repository.name)' + + steps: + - script: | + set -e + mkdir -p '$(GOPATH)/bin' + mkdir -p '$(sdkPath)' + shopt -s dotglob extglob + mv !(work) '$(sdkPath)' + echo '##vso[task.prependpath]$(GOROOT)/bin' + echo '##vso[task.prependpath]$(GOPATH)/bin' + displayName: 'Create Go Workspace' + - script: | + set -e + go version + go get -u golang.org/x/lint/golint + workingDirectory: '$(sdkPath)' + displayName: 'Install Dependencies' + - script: go vet $(go list ./sdk/...) + workingDirectory: '$(sdkPath)' + displayName: 'Vet' + - script: go build -v $(go list ./sdk/...) + workingDirectory: '$(sdkPath)' + displayName: 'Build' + - script: go test ./sdk/... + workingDirectory: '$(sdkPath)' + displayName: 'Run Tests' + - script: grep -L -r --include \*.go -P "Copyright (\d{4}|\(c\)) Microsoft" ./sdk | tee >&2 + workingDirectory: '$(sdkPath)' + displayName: 'Copyright Header Check' + failOnStderr: true + condition: succeededOrFailed() + - script: gofmt -s -l -w $(find ./sdk -name '*.go' -print) >&2 + workingDirectory: '$(sdkPath)' + displayName: 'Format Check' + failOnStderr: true + condition: succeededOrFailed() + - script: | + golint ./sdk/... >&2 + workingDirectory: '$(sdkPath)' + displayName: 'Linter Check' + failOnStderr: true + condition: succeededOrFailed()