Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitry-kurmanov committed Nov 12, 2024
2 parents 5b4c460 + 01cfc82 commit d5337d7
Show file tree
Hide file tree
Showing 124 changed files with 1,610 additions and 513 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ https://github.com/surveyjs/survey-creator/assets/102306951/afb8a75d-921e-4e5f-8
- [Angular](https://surveyjs.io/survey-creator/documentation/get-started-angular)
- [Vue](https://surveyjs.io/survey-creator/documentation/get-started-vue)
- [React](https://surveyjs.io/survey-creator/documentation/get-started-react)
- [HTML/CSS/JavaScript](/survey-creator/documentation/get-started-html-css-javascript)
- [HTML/CSS/JavaScript](https://surveyjs.io/survey-creator/documentation/get-started-html-css-javascript)

## Resources

Expand Down
339 changes: 339 additions & 0 deletions devops-visual-regression-tests-v2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,339 @@
# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

resources:
repositories:
- repository: EmptyRepo
type: github
endpoint: dmitrykurmanov:admin
name: surveyjs/azure-pipelines-repo-dont-remove-please

trigger:
batch: true
branches:
exclude:
- master
tags:
exclude:
- v*.*.*

pool:
vmImage: 'windows-latest'

jobs:

- job: CreatorV2Core
steps:
- checkout: self
- checkout: EmptyRepo
persistCredentials: true
clean: true

- task: NodeTool@0
inputs:
versionSpec: '16.x'
displayName: 'Install Node.js'

- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core/"
Contents: "package.json"
TargetFolder: "$(Build.SourcesDirectory)/Temp/"
OverWrite: true
displayName: "Copy package.json for cache key"

- task: Cache@2
inputs:
key: 'npm-cache-creator-core | $(Build.SourcesDirectory)/Temp/package.json'
path: $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core/node_modules
cacheHitVar: NPM_CACHE_RESTORED
displayName: Cache NPM Core

- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'af2804d2-859a-4705-9ef5-cdf46d1d5d4f'
pipeline: '56'
specificBuildWithTriggering: true
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'SurveyJSLibraryBuildCoreAngularJquery'
downloadPath: '$(System.ArtifactsDirectory)'

- task: CopyFiles@2
inputs:
SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/packages'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-library/build'
OverWrite: true

- task: Npm@1
displayName: 'Npm install survey-creator-core'
inputs:
command: install
verbose: false
workingDir: $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core
condition: ne(variables.NPM_CACHE_RESTORED, 'true')

# update 'file' npm dependencies in case of cache
- task: CopyFiles@2
inputs:
SourceFolder: $(Build.SourcesDirectory)/survey-library/build/survey-core
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core/node_modules/survey-core'
OverWrite: true
condition: ne(variables.NPM_CACHE_RESTORED, 'false')
displayName: 'copy survey-core in case of npm cache'
# EO update 'file' npm dependencies in case of cache

- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core
npm run remove-package-lock
displayName: 'npm run remove-package-lock'
- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core
npm run build:themes
displayName: 'Build Creator V2 Core themes'
- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core
npm run build:i18n
displayName: 'Build Creator V2 Core i18n'
- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core
npm run build
displayName: 'Build Creator V2 Core'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core/build'
targetFolder: $(Build.ArtifactStagingDirectory)/SurveyJSCreatorV2Build/build/survey-creator-core

- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/SurveyJSCreatorV2Build/build/survey-creator-core'
ArtifactName: 'SurveyJSCreatorV2Build-VRT-Core-$(Build.BuildId)'
publishLocation: 'Container'

- job: CreatorV2React
dependsOn: CreatorV2Core
steps:
- checkout: self
- checkout: EmptyRepo
persistCredentials: true
clean: true

- task: PowerShell@2
displayName: 'update Google Chrome to latest'
inputs:
targetType: 'inline'
script: '$Path = $env:TEMP; $Installer = ''chrome_installer.exe''; Invoke-WebRequest -Uri ''http://dl.google.com/chrome/install/375.126/chrome_installer.exe'' -OutFile $Path\$Installer; Start-Process -FilePath $Path\$Installer -Args ''/silent /install'' -Verb RunAs -Wait; Remove-Item -Path $Path\$Installer'

- task: NodeTool@0
inputs:
versionSpec: '16.x'
displayName: 'Install Node.js'

- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/"
Contents: "package.json"
TargetFolder: "$(Build.SourcesDirectory)/Temp/react/"
OverWrite: true
displayName: "Copy package.json for cache key (react)"

- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-creator/"
Contents: "package.json"
TargetFolder: "$(Build.SourcesDirectory)/Temp/root/"
OverWrite: true
displayName: "Copy package.json for cache key (root)"
- task: Cache@2
inputs:
key: 'npm-cache-creator-react | $(Build.SourcesDirectory)/Temp/react/package.json'
path: $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules
cacheHitVar: NPM_CACHE_RESTORED
displayName: Cache NPM

- task: Cache@2
inputs:
key: 'npm-cache-creator-root | $(Build.SourcesDirectory)/Temp/root/package.json'
path: $(Build.SourcesDirectory)/survey-creator/node_modules
cacheHitVar: NPM_CACHE_RESTORED_ROOT
displayName: Cache NPM

- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'af2804d2-859a-4705-9ef5-cdf46d1d5d4f'
pipeline: '56'
specificBuildWithTriggering: true
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'SurveyJSLibraryBuildReact'
downloadPath: '$(System.ArtifactsDirectory)'

- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'af2804d2-859a-4705-9ef5-cdf46d1d5d4f'
pipeline: '56'
specificBuildWithTriggering: true
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'SurveyJSLibraryBuildCoreAngularJquery'
downloadPath: '$(System.ArtifactsDirectory)'


- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'SurveyJSCreatorV2Build-VRT-Core-$(Build.BuildId)'
downloadPath: '$(System.ArtifactsDirectory)'

- task: CopyFiles@2
inputs:
SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/packages'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-library/build'
OverWrite: true

- task: CopyFiles@2
inputs:
SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildReact/packages'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-library/build'
OverWrite: true

- script: |
cd $(Build.SourcesDirectory)/survey-library/build/survey-react-ui
sed -i 's/"survey-core": .*"/"survey-core": "latest"/g' package.json
displayName: 'Change survey-core dependency version from release next ver to local dependency'
- task: CopyFiles@2
inputs:
SourceFolder: $(System.ArtifactsDirectory)/SurveyJSCreatorV2Build-VRT-Core-$(Build.BuildId)
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-core/build'

- task: Npm@1
displayName: 'Npm install root'
inputs:
command: install
verbose: false
workingDir: $(Build.SourcesDirectory)/survey-creator
condition: ne(variables.NPM_CACHE_RESTORED_ROOT, 'true')

- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react
npx puppeteer browsers install chrome
displayName: "install chrome"
- script: |
cd $(Build.SourcesDirectory)/survey-creator
npm run lint
displayName: 'check lint'
- task: Npm@1
displayName: 'Npm install survey-creator-react'
inputs:
command: install
verbose: false
workingDir: $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react
condition: ne(variables.NPM_CACHE_RESTORED, 'true')

- task: DownloadBuildArtifacts@0
inputs:
buildType: 'specific'
project: 'af2804d2-859a-4705-9ef5-cdf46d1d5d4f'
pipeline: '56'
specificBuildWithTriggering: true
buildVersionToDownload: 'latest'
downloadType: 'single'
artifactName: 'SurveyJSLibraryBuildCoreAngularJquery'
downloadPath: '$(System.ArtifactsDirectory)'

# update 'file' npm dependencies in case of cache
- task: CopyFiles@2
inputs:
SourceFolder: $(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/packages/survey-core
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/survey-core'
OverWrite: true
condition: ne(variables.NPM_CACHE_RESTORED, 'false')
displayName: 'copy survey-core in case of npm cache'

- task: CopyFiles@2
inputs:
SourceFolder: $(Build.SourcesDirectory)/survey-library/build/survey-react-ui
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/survey-react-ui'
OverWrite: true
condition: ne(variables.NPM_CACHE_RESTORED, 'false')
displayName: 'copy survey-react-ui in case of npm cache'

- task: CopyFiles@2
inputs:
SourceFolder: $(System.ArtifactsDirectory)/SurveyJSCreatorV2Build-VRT-Core-$(Build.BuildId)
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/survey-creator-core'
OverWrite: true
condition: ne(variables.NPM_CACHE_RESTORED, 'false')
displayName: 'copy survey-creator-core in case of npm cache'
# EO update 'file' npm dependencies in case of cache

- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react
npm run remove-package-lock
displayName: 'npm run remove-package-lock'
- task: CopyFiles@2
inputs:
SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/packages/survey-core'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/survey-core'
OverWrite: true
displayName: 'copy build from library for f-f tests'

- task: CopyFiles@2
inputs:
SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildReact/packages/survey-react-ui'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/survey-react-ui'
OverWrite: true
displayName: 'copy build from library for f-f tests'

- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react/node_modules/@types'
Contents: '**'
TargetFolder: '$(Build.SourcesDirectory)/survey-library/node_modules/@types'
OverWrite: true
displayName: 'copy @types into library directory'

- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react
npm run build
displayName: 'Build CreatorV2 React'
- script: |
cd $(Build.SourcesDirectory)/survey-creator/packages/survey-creator-react
npm run vrt:v2:ci
displayName: 'Visual Regression Tests V2 Creator React'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)/survey-creator/visualRegressionTests-V2'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/Creator_React_VRT-V2'
OverWrite: true
condition: always()
displayName: 'copy vrt v2 react artifacts'

- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Creator_React_VRT-V2/'
ArtifactName: 'Creator_React_VRT-V2'
publishLocation: 'Container'
condition: always()
displayName: 'publish vrt v2 react artifacts'
Loading

0 comments on commit d5337d7

Please sign in to comment.