trigger: batch: true branches: include: - master - next - version-* variables: ${{ if startsWith(variables['Build.SourceBranch'], 'refs/pull/') }}: branchName: ${{ replace(variables['System.PullRequest.SourceBranch'], '/', '-') }} ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/') }}: branchName: ${{ replace(variables['Build.SourceBranchName'], 'refs/heads/', '') }} stages: - stage: generate jobs: - job: swagger_generate pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: CmdLine@2 inputs: script: | cp ../schema.yml . docker run \ --rm -v $(pwd):/local \ openapitools/openapi-generator-cli generate \ --git-host goauthentik.io \ --git-repo-id outpost \ --git-user-id api \ -i /local/schema.yml \ -g go \ -o /local/api \ --additional-properties=packageName=api,enumClassPrefix=true workingDirectory: 'outpost/' - task: PublishPipelineArtifact@1 inputs: targetPath: 'outpost/api/' artifact: 'go_api_client' publishLocation: 'pipeline' - stage: lint jobs: - job: golint pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' artifactName: 'go_api_client' path: "outpost/api/" - task: CmdLine@2 inputs: script: | docker run \ --rm \ -v $(pwd):/app \ -w /app \ golangci/golangci-lint:v1.39.0 \ golangci-lint run -v --timeout 200s workingDirectory: 'outpost/' - stage: build_go jobs: - job: proxy_build_go pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' artifactName: 'go_api_client' path: "outpost/api/" - task: Go@0 inputs: command: 'build' arguments: './cmd/proxy' workingDirectory: 'outpost/' - job: ldap_build_go pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' artifactName: 'go_api_client' path: "outpost/api/" - task: Go@0 inputs: command: 'build' arguments: './cmd/ldap' workingDirectory: 'outpost/' - stage: build_docker jobs: - job: proxy_build_docker pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' artifactName: 'go_api_client' path: "outpost/api/" - task: Bash@3 inputs: targetType: 'inline' script: | python ./scripts/az_do_set_branch.py - task: Docker@2 inputs: containerRegistry: 'beryjuorg-harbor' repository: 'authentik/outpost-proxy' command: 'build' Dockerfile: 'outpost/proxy.Dockerfile' buildContext: 'outpost/' tags: | gh-$(branchName) gh-$(Build.SourceVersion) arguments: '--build-arg GIT_BUILD_HASH=$(Build.SourceVersion)' - task: Docker@2 inputs: containerRegistry: 'beryjuorg-harbor' repository: 'authentik/outpost-proxy' command: 'push' tags: | gh-$(branchName) gh-$(Build.SourceVersion) - job: ldap_build_docker pool: vmImage: 'ubuntu-latest' steps: - task: GoTool@0 inputs: version: '1.16.3' - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' artifactName: 'go_api_client' path: "outpost/api/" - task: Bash@3 inputs: targetType: 'inline' script: | python ./scripts/az_do_set_branch.py - task: Docker@2 inputs: containerRegistry: 'beryjuorg-harbor' repository: 'authentik/outpost-ldap' command: 'build' Dockerfile: 'outpost/ldap.Dockerfile' buildContext: 'outpost/' tags: | gh-$(branchName) gh-$(Build.SourceVersion) arguments: '--build-arg GIT_BUILD_HASH=$(Build.SourceVersion)' - task: Docker@2 inputs: containerRegistry: 'beryjuorg-harbor' repository: 'authentik/outpost-ldap' command: 'push' tags: | gh-$(branchName) gh-$(Build.SourceVersion)