trigger: batch: true branches: include: - master - release-* tags: include: - '*' pr: branches: include: - '*' jobs: - job: build displayName: 'Build' pool: vmImage: 'ubuntu-latest' strategy: matrix: Development: BuildConfiguration: development Production: BuildConfiguration: production Standalone: BuildConfiguration: standalone maxParallel: 3 steps: - task: NodeTool@0 displayName: 'Install Node' inputs: versionSpec: '10.x' - task: Cache@2 displayName: 'Check Cache' inputs: key: 'yarn | yarn.lock' path: 'node_modules' cacheHitVar: CACHE_RESTORED - script: 'yarn install --frozen-lockfile' displayName: 'Install Dependencies' condition: ne(variables.CACHE_RESTORED, 'true') - script: 'yarn build:development' displayName: 'Build Development' condition: eq(variables['BuildConfiguration'], 'development') - script: 'yarn build:production' displayName: 'Build Bundle' condition: eq(variables['BuildConfiguration'], 'production') - script: 'yarn build:standalone' displayName: 'Build Standalone' condition: eq(variables['BuildConfiguration'], 'standalone') - script: 'test -d dist' displayName: 'Check Build' - script: 'mv dist jellyfin-web' displayName: 'Rename Directory' condition: succeeded() - task: PublishPipelineArtifact@1 displayName: 'Publish Release' condition: succeeded() inputs: targetPath: '$(Build.SourcesDirectory)/jellyfin-web' artifactName: 'jellyfin-web-$(BuildConfiguration)' - job: lint displayName: 'Lint' pool: vmImage: 'ubuntu-latest' steps: - task: NodeTool@0 displayName: 'Install Node' inputs: versionSpec: '10.x' - task: Cache@2 displayName: 'Check Cache' inputs: key: 'yarn | yarn.lock' path: 'node_modules' cacheHitVar: CACHE_RESTORED - script: 'yarn install --frozen-lockfile' displayName: 'Install Dependencies' condition: ne(variables.CACHE_RESTORED, 'true') - script: 'yarn run lint' displayName: 'Run ESLint' - script: 'yarn run stylelint' displayName: 'Run Stylelint'