trigger: - master variables: ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/') }}: branchName: ${{ replace(variables['Build.SourceBranchName'], 'refs/heads/', '') }} ${{ if startsWith(variables['Build.SourceBranch'], 'refs/pull/') }}: branchName: ${{ replace(variables['System.PullRequest.SourceBranch'], 'refs/heads/', '') }} stages: - stage: generate jobs: - job: swagger_generate pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.15' - task: CmdLine@2 inputs: script: | sudo apt install gnupg ca-certificates sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 echo "deb https://dl.bintray.com/go-swagger/goswagger-debian ubuntu main" | sudo tee /etc/apt/sources.list.d/goswagger.list sudo apt update sudo apt install swagger mkdir -p $(go env GOPATH) 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-${{ variables.branchName }}"