87 lines
2.5 KiB
YAML
87 lines
2.5 KiB
YAML
trigger:
|
|
- master
|
|
|
|
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/'
|