2020-09-02 23:04:12 +01:00
|
|
|
trigger:
|
|
|
|
- master
|
|
|
|
|
2020-12-02 21:41:53 +00:00
|
|
|
variables:
|
|
|
|
${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/') }}:
|
|
|
|
branchName: ${{ replace(variables['Build.SourceBranchName'], 'refs/heads/', '') }}
|
|
|
|
${{ if startsWith(variables['Build.SourceBranch'], 'refs/pull/') }}:
|
2020-12-24 15:18:06 +00:00
|
|
|
branchName: $(System.PullRequest.SourceBranch)
|
2020-12-02 21:41:53 +00:00
|
|
|
|
2020-09-02 23:04:12 +01:00
|
|
|
stages:
|
|
|
|
- stage: generate
|
|
|
|
jobs:
|
|
|
|
- job: swagger_generate
|
|
|
|
pool:
|
|
|
|
vmImage: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- task: GoTool@0
|
|
|
|
inputs:
|
|
|
|
version: '1.15'
|
|
|
|
- task: CmdLine@2
|
|
|
|
inputs:
|
|
|
|
script: |
|
2020-12-04 08:59:59 +00:00
|
|
|
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)
|
2020-12-05 21:08:42 +00:00
|
|
|
swagger generate client -f ../swagger.yaml -A authentik -t pkg/
|
2021-01-16 20:49:30 +00:00
|
|
|
workingDirectory: 'outpost/'
|
2020-09-02 23:04:12 +01:00
|
|
|
- task: PublishPipelineArtifact@1
|
|
|
|
inputs:
|
2021-01-16 20:49:30 +00:00
|
|
|
targetPath: 'outpost/pkg/'
|
2020-09-02 23:04:12 +01:00
|
|
|
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'
|
2021-01-16 20:49:30 +00:00
|
|
|
path: "outpost/pkg/"
|
2020-09-02 23:04:12 +01:00
|
|
|
- task: CmdLine@2
|
|
|
|
inputs:
|
|
|
|
script: |
|
|
|
|
$(go list -f {{.Target}} golang.org/x/lint/golint) ./...
|
2021-01-16 20:49:30 +00:00
|
|
|
workingDirectory: 'outpost/'
|
|
|
|
- stage: proxy_build_go
|
2020-09-02 23:04:12 +01:00
|
|
|
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'
|
2021-01-16 20:49:30 +00:00
|
|
|
path: "outpost/pkg/"
|
2020-09-02 23:04:12 +01:00
|
|
|
- task: Go@0
|
|
|
|
inputs:
|
|
|
|
command: 'build'
|
2021-01-16 20:49:30 +00:00
|
|
|
arguments: './cmd/proxy'
|
|
|
|
workingDirectory: 'outpost/'
|
|
|
|
- stage: proxy_build_docker
|
2020-09-02 23:04:12 +01:00
|
|
|
jobs:
|
2021-01-16 20:49:30 +00:00
|
|
|
- job: build
|
2020-09-02 23:04:12 +01:00
|
|
|
pool:
|
|
|
|
vmImage: 'ubuntu-latest'
|
|
|
|
steps:
|
|
|
|
- task: GoTool@0
|
|
|
|
inputs:
|
|
|
|
version: '1.15'
|
|
|
|
- task: DownloadPipelineArtifact@2
|
|
|
|
inputs:
|
|
|
|
buildType: 'current'
|
|
|
|
artifactName: 'swagger_client'
|
2021-01-16 20:49:30 +00:00
|
|
|
path: "outpost/pkg/"
|
2021-01-11 15:18:44 +00:00
|
|
|
- task: Bash@3
|
|
|
|
inputs:
|
|
|
|
targetType: 'inline'
|
|
|
|
script: |
|
|
|
|
set -x
|
|
|
|
echo '##vso[task.setvariable variable=branchName]$(echo "$(System.PullRequest.SourceBranch)" | sed "s/\//-/g")'
|
2020-09-02 23:04:12 +01:00
|
|
|
- task: Docker@2
|
|
|
|
inputs:
|
|
|
|
containerRegistry: 'dockerhub'
|
2021-01-16 20:49:30 +00:00
|
|
|
repository: 'beryju/authentik-outpost'
|
2020-09-02 23:04:12 +01:00
|
|
|
command: 'buildAndPush'
|
2021-01-16 20:49:30 +00:00
|
|
|
Dockerfile: 'outpost/proxy.Dockerfile'
|
|
|
|
buildContext: 'outpost/'
|
2020-12-02 21:41:53 +00:00
|
|
|
tags: "gh-${{ variables.branchName }}"
|