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: lint
    jobs:
      - job: eslint
        pool:
          vmImage: 'ubuntu-latest'
        steps:
          - task: NodeTool@0
            inputs:
              versionSpec: '12.x'
            displayName: 'Install Node.js'
          - 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: 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: 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: Bash@3
          inputs:
            targetType: 'inline'
            script: |
              set -x
              branchName=$(echo "$(System.PullRequest.SourceBranch)" | sed "s/\//-/g")
              echo "##vso[task.setvariable variable=branchName]$branchName"
        - task: Docker@2
          inputs:
            containerRegistry: 'dockerhub'
            repository: 'beryju/authentik-static'
            command: 'buildAndPush'
            Dockerfile: 'web/Dockerfile'
            tags: "gh-$(branchName)"
            buildContext: 'web/'