mirror of
https://dev.azure.com/schwarzit/schwarzit.stackit-public/_git/audit-go
synced 2026-02-16 21:01:45 +00:00
Add build pipeline yml
This commit is contained in:
parent
e9a6279ab2
commit
7d299ada4c
1 changed files with 82 additions and 0 deletions
82
.azuredevops/azure-pipelines.yml
Normal file
82
.azuredevops/azure-pipelines.yml
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
pool:
|
||||||
|
vmImage: 'ubuntu-latest'
|
||||||
|
|
||||||
|
variables:
|
||||||
|
- name: goVersion
|
||||||
|
value: 1.23.0
|
||||||
|
- name: GOPATH
|
||||||
|
value: '$(system.defaultWorkingDirectory)/gopath'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: Build
|
||||||
|
jobs:
|
||||||
|
- job: GoBuildTest
|
||||||
|
displayName: Run build and tests
|
||||||
|
steps:
|
||||||
|
- task: GoTool@0
|
||||||
|
displayName: Install Go $(goVersion)
|
||||||
|
inputs:
|
||||||
|
version: $(goVersion)
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
go env -w GOMODCACHE="$(pwd)/.gomodcache"
|
||||||
|
displayName: Configure GOMODCACHE
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2
|
||||||
|
go install github.com/envoyproxy/protoc-gen-validate@v1.1.0
|
||||||
|
go install github.com/bufbuild/buf/cmd/buf@v1.45.0
|
||||||
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Install build dependencies
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
echo on
|
||||||
|
go mod download
|
||||||
|
go mod tidy
|
||||||
|
go get ./...
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Download dependencies
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
echo on
|
||||||
|
rm -rf gen/
|
||||||
|
export PATH="$PATH:$GOPATH/bin"
|
||||||
|
buf format proto -w
|
||||||
|
cd proto
|
||||||
|
buf lint
|
||||||
|
buf generate
|
||||||
|
cd -
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Regenerate code from schema
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
echo on
|
||||||
|
export PATH="$PATH:$GOPATH/bin"
|
||||||
|
go fmt ./... && go vet ./... && golangci-lint run
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Format and lint
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -e
|
||||||
|
echo on
|
||||||
|
git diff HEAD --name-only --exit-code
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Check local changes after code generation and formatting
|
||||||
|
|
||||||
|
- bash: go build ./...
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Build
|
||||||
|
|
||||||
|
- bash: go test ./...
|
||||||
|
condition: succeeded()
|
||||||
|
displayName: Run tests
|
||||||
|
|
||||||
|
- bash: sudo rm -rf .gomodcache
|
||||||
|
condition: always()
|
||||||
|
displayName: Clean up the local cache (.gomodcache)
|
||||||
Loading…
Reference in a new issue