126 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
trigger:
 | 
						|
  - 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: NodeTool@0
 | 
						|
            inputs:
 | 
						|
              versionSpec: '12.x'
 | 
						|
            displayName: 'Install Node.js'
 | 
						|
          - task: CmdLine@2
 | 
						|
            inputs:
 | 
						|
              script: |
 | 
						|
                docker run --rm -v $(pwd):/local openapitools/openapi-generator-cli generate -i /local/swagger.yaml -g typescript-fetch -o /local/web/api --additional-properties=typescriptThreePlus=true,supportsES6=true,npmName=authentik-api,npmVersion=1.0.0
 | 
						|
          - task: PublishPipelineArtifact@1
 | 
						|
            inputs:
 | 
						|
              targetPath: 'web/api/'
 | 
						|
              artifact: 'ts_swagger_client'
 | 
						|
              publishLocation: 'pipeline'
 | 
						|
  - stage: lint
 | 
						|
    jobs:
 | 
						|
      - job: eslint
 | 
						|
        pool:
 | 
						|
          vmImage: 'ubuntu-latest'
 | 
						|
        steps:
 | 
						|
          - task: NodeTool@0
 | 
						|
            inputs:
 | 
						|
              versionSpec: '12.x'
 | 
						|
            displayName: 'Install Node.js'
 | 
						|
          - task: DownloadPipelineArtifact@2
 | 
						|
            inputs:
 | 
						|
              buildType: 'current'
 | 
						|
              artifactName: 'ts_swagger_client'
 | 
						|
              path: "web/api/"
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'install'
 | 
						|
              workingDir: 'web/'
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'custom'
 | 
						|
              workingDir: 'web/'
 | 
						|
              customCommand: 'run lint'
 | 
						|
      - job: lit_analyse
 | 
						|
        pool:
 | 
						|
          vmImage: 'ubuntu-latest'
 | 
						|
        steps:
 | 
						|
          - task: NodeTool@0
 | 
						|
            inputs:
 | 
						|
              versionSpec: '12.x'
 | 
						|
            displayName: 'Install Node.js'
 | 
						|
          - task: DownloadPipelineArtifact@2
 | 
						|
            inputs:
 | 
						|
              buildType: 'current'
 | 
						|
              artifactName: 'ts_swagger_client'
 | 
						|
              path: "web/api/"
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'install'
 | 
						|
              workingDir: 'web/'
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'custom'
 | 
						|
              workingDir: 'web/'
 | 
						|
              customCommand: 'run lit-analyse'
 | 
						|
  - stage: build_local
 | 
						|
    jobs:
 | 
						|
      - job: build
 | 
						|
        pool:
 | 
						|
          vmImage: 'ubuntu-latest'
 | 
						|
        steps:
 | 
						|
          - task: NodeTool@0
 | 
						|
            inputs:
 | 
						|
              versionSpec: '12.x'
 | 
						|
            displayName: 'Install Node.js'
 | 
						|
          - task: DownloadPipelineArtifact@2
 | 
						|
            inputs:
 | 
						|
              buildType: 'current'
 | 
						|
              artifactName: 'ts_swagger_client'
 | 
						|
              path: "web/api/"
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'install'
 | 
						|
              workingDir: 'web/'
 | 
						|
          - task: Npm@1
 | 
						|
            inputs:
 | 
						|
              command: 'custom'
 | 
						|
              workingDir: 'web/'
 | 
						|
              customCommand: 'run build'
 | 
						|
  - stage: build_docker
 | 
						|
    jobs:
 | 
						|
      - job: build_static
 | 
						|
        pool:
 | 
						|
          vmImage: 'ubuntu-latest'
 | 
						|
        steps:
 | 
						|
          - task: DownloadPipelineArtifact@2
 | 
						|
            inputs:
 | 
						|
              buildType: 'current'
 | 
						|
              artifactName: 'ts_swagger_client'
 | 
						|
              path: "web/api/"
 | 
						|
          - task: Bash@3
 | 
						|
            inputs:
 | 
						|
              targetType: 'inline'
 | 
						|
              script: |
 | 
						|
                python ./scripts/az_do_set_branch.py
 | 
						|
          - task: Docker@2
 | 
						|
            inputs:
 | 
						|
              containerRegistry: 'beryjuorg-harbor'
 | 
						|
              repository: 'authentik/static'
 | 
						|
              command: 'buildAndPush'
 | 
						|
              Dockerfile: 'web/Dockerfile'
 | 
						|
              tags: "gh-$(branchName)"
 | 
						|
              buildContext: 'web/'
 |