mirror of
https://dev.azure.com/schwarzit/schwarzit.stackit-public/_git/audit-go
synced 2026-02-07 16:47:24 +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