91 lines
2.6 KiB
YAML
91 lines
2.6 KiB
YAML
|
trigger:
|
||
|
- master
|
||
|
|
||
|
stages:
|
||
|
- stage: generate
|
||
|
jobs:
|
||
|
- job: swagger_generate
|
||
|
pool:
|
||
|
vmImage: 'ubuntu-latest'
|
||
|
steps:
|
||
|
- task: GoTool@0
|
||
|
inputs:
|
||
|
version: '1.15'
|
||
|
- task: Go@0
|
||
|
inputs:
|
||
|
command: 'get'
|
||
|
arguments: '-u github.com/go-swagger/go-swagger/cmd/swagger'
|
||
|
- task: CmdLine@2
|
||
|
inputs:
|
||
|
script: |
|
||
|
$(go list -f {{.Target}} github.com/go-swagger/go-swagger/cmd/swagger) generate client -f ../swagger.yaml -A passbook -t pkg/
|
||
|
workingDirectory: 'proxy/'
|
||
|
- task: PublishPipelineArtifact@1
|
||
|
inputs:
|
||
|
targetPath: 'proxy/pkg/'
|
||
|
artifact: 'swagger_client'
|
||
|
publishLocation: 'pipeline'
|
||
|
- stage: lint
|
||
|
jobs:
|
||
|
- job: golint
|
||
|
pool:
|
||
|
vmImage: 'ubuntu-latest'
|
||
|
steps:
|
||
|
- task: GoTool@0
|
||
|
inputs:
|
||
|
version: '1.15'
|
||
|
- task: Go@0
|
||
|
inputs:
|
||
|
command: 'get'
|
||
|
arguments: '-u golang.org/x/lint/golint'
|
||
|
- task: DownloadPipelineArtifact@2
|
||
|
inputs:
|
||
|
buildType: 'current'
|
||
|
artifactName: 'swagger_client'
|
||
|
path: "proxy/pkg/"
|
||
|
- task: CmdLine@2
|
||
|
inputs:
|
||
|
script: |
|
||
|
$(go list -f {{.Target}} golang.org/x/lint/golint) ./...
|
||
|
workingDirectory: 'proxy/'
|
||
|
- stage: build_go
|
||
|
jobs:
|
||
|
- job: build_go
|
||
|
pool:
|
||
|
vmImage: 'ubuntu-latest'
|
||
|
steps:
|
||
|
- task: GoTool@0
|
||
|
inputs:
|
||
|
version: '1.15'
|
||
|
- task: DownloadPipelineArtifact@2
|
||
|
inputs:
|
||
|
buildType: 'current'
|
||
|
artifactName: 'swagger_client'
|
||
|
path: "proxy/pkg/"
|
||
|
- task: Go@0
|
||
|
inputs:
|
||
|
command: 'build'
|
||
|
workingDirectory: 'proxy/'
|
||
|
- stage: build_docker
|
||
|
jobs:
|
||
|
- job: build_proxy
|
||
|
pool:
|
||
|
vmImage: 'ubuntu-latest'
|
||
|
steps:
|
||
|
- task: GoTool@0
|
||
|
inputs:
|
||
|
version: '1.15'
|
||
|
- task: DownloadPipelineArtifact@2
|
||
|
inputs:
|
||
|
buildType: 'current'
|
||
|
artifactName: 'swagger_client'
|
||
|
path: "proxy/pkg/"
|
||
|
- task: Docker@2
|
||
|
inputs:
|
||
|
containerRegistry: 'dockerhub'
|
||
|
repository: 'beryju/passbook-proxy'
|
||
|
command: 'buildAndPush'
|
||
|
Dockerfile: 'proxy/Dockerfile'
|
||
|
buildContext: 'proxy/'
|
||
|
tags: 'gh-$(Build.SourceBranchName)'
|