From cfeb3f89f89bf747d596c774f61e5a91daf5ae28 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Fri, 3 Jan 2025 17:35:11 +0700 Subject: [PATCH] Fix pipelines (#361) --- devops-integration.yml | 344 ++++++++++++++++++++--------------------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/devops-integration.yml b/devops-integration.yml index 7988e23..6d8d4e9 100644 --- a/devops-integration.yml +++ b/devops-integration.yml @@ -14,182 +14,182 @@ trigger: batch: true branches: include: - - master + - master tags: exclude: - v*.*.* pool: - vmImage: 'ubuntu-latest' + vmImage: "ubuntu-latest" steps: -- checkout: self -- checkout: Service - persistCredentials: true - clean: true - fetchDepth: 1 - -- task: NodeTool@0 - inputs: - versionSpec: '14.x' - displayName: 'Install Node.js' - -- task: CopyFiles@2 - inputs: - SourceFolder: "$(Build.SourcesDirectory)/survey-pdf/" - Contents: "package.json" - TargetFolder: "$(Build.SourcesDirectory)/Temp/" - OverWrite: true - displayName: "Copy package.json for cache key" -- task: Cache@2 - inputs: - key: 'npm-cache-pdf | $(Build.SourcesDirectory)/Temp/package.json' - path: $(Build.SourcesDirectory)/survey-pdf/node_modules - cacheHitVar: NPM_CACHE_RESTORED - displayName: Cache NPM - -- powershell: | - $env:GIT_REDIRECT_STDERR = '2>&1' - git config --global user.email "kurmanov.work@gmail.com" - git config --global user.name "dmitrykurmanov" - displayName: 'set up Git config' - -- task: Npm@1 - displayName: 'NPM install' - inputs: - command: install - verbose: false - workingDir: $(Build.SourcesDirectory)/survey-pdf - 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)' - -- task: CopyFiles@2 - inputs: - SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/packages/survey-core' - Contents: '**' - TargetFolder: '$(Build.SourcesDirectory)/survey-pdf/node_modules/survey-core' - OverWrite: true - -# npm run release with version -- task: CopyFiles@2 - inputs: - SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCoreAngularJquery/' - Contents: 'version.txt' - TargetFolder: '$(Build.SourcesDirectory)/' - OverWrite: true - displayName: 'Copy Build Artifact - SurveyJSVersion File' - -- powershell: | - $version = Get-Content $(Build.SourcesDirectory)/version.txt - Write-Host "##vso[task.setvariable variable=SurveyJSVersion;]$version" - displayName: 'setup SurveyJSVersion variable from SurveyJSVersionFile' - -- powershell: | - cd $(Build.SourcesDirectory)/survey-pdf - npm run release -- --release-as $(SurveyJSVersion) - displayName: 'npm run release specific version' -##################################################### - -- task: DownloadBuildArtifacts@0 - inputs: - buildType: 'specific' - project: 'af2804d2-859a-4705-9ef5-cdf46d1d5d4f' - pipeline: '42' - specificBuildWithTriggering: true - buildVersionToDownload: 'latest' - downloadType: 'single' - artifactName: 'SurveyJSWidgetsBuild' - downloadPath: '$(System.ArtifactsDirectory)' - -- task: CopyFiles@2 - inputs: - SourceFolder: '$(System.ArtifactsDirectory)/SurveyJSWidgetsBuild/packages/survey-widgets' - Contents: '**' - TargetFolder: '$(Build.SourcesDirectory)/survey-pdf/node_modules/surveyjs-widgets' - OverWrite: true - -- script: | - cd $(Build.SourcesDirectory)/survey-pdf - npm run build_fonts - displayName: 'build fonts' - -- script: | - cd $(Build.SourcesDirectory)/survey-pdf - npm run build_prod - displayName: 'build' - -- script: | - cd $(Build.SourcesDirectory)/survey-pdf - npm test - displayName: 'unit tests' - -- task: PublishCodeCoverageResults@1 - inputs: - codeCoverageTool: Cobertura # or JaCoCo - summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml' - reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage' - -- script: | - cd $(Build.SourcesDirectory)/survey-pdf - npm run doc_gen - displayName: 'generate docs' - -- task: CopyFiles@2 - inputs: - SourceFolder: '$(Build.SourcesDirectory)/survey-pdf/docs' - Contents: | - classes.json - pmes.json - surveyjs_definition.json - TargetFolder: '$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf' - OverWrite: true - CleanTargetFolder: false - displayName: 'copy generated docs to the local surveyjs/service repo' - -- task: CopyFiles@2 - inputs: - SourceFolder: '$(Build.SourcesDirectory)/survey-pdf' - Contents: 'README.md' - TargetFolder: '$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf' - displayName: 'copy generated docs to the local surveyjs/service repo' - -# - task: DeleteFiles@1 -# inputs: -# SourceFolder: '$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf' -# Contents: 'PdfExportOverview.md' -# Rename-Item -Path "$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf/README.md" -NewName "PdfExportOverview.md" - -# read about the problem with git output ($env:GIT_REDIRECT_STDERR = '2>&1') : -# https://github.com/microsoft/azure-pipelines-yaml/issues/248 -# https://stackoverflow.com/questions/58485585/azure-pipeline-powershell-and-git-on-windows-server-2019-gives-error-in-output -- powershell: | - cd $(Build.SourcesDirectory)/service - git pull origin master - git fetch origin master --tags --force - git checkout master - git add surveyjs.io/App_Data/DocsPdf - git commit -m "updated survey-pdf docs" - git pull origin master - git push origin master - displayName: 'git surveyjs/service push updated docs' - -- task: CopyFiles@2 - inputs: - SourceFolder: '$(Build.SourcesDirectory)/survey-pdf/packages/survey-pdf' - targetFolder: $(Build.ArtifactStagingDirectory)/SurveyjsPDFbuild/packages/survey-pdf - -- task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)/SurveyjsPDFbuild/' - ArtifactName: 'SurveyjsPDFbuild' - publishLocation: 'Container' \ No newline at end of file + - checkout: self + - checkout: Service + persistCredentials: true + clean: true + fetchDepth: 1 + + - task: NodeTool@0 + inputs: + versionSpec: "14.x" + displayName: "Install Node.js" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(Build.SourcesDirectory)/survey-pdf/" + Contents: "package.json" + TargetFolder: "$(Build.SourcesDirectory)/Temp/" + OverWrite: true + displayName: "Copy package.json for cache key" + - task: Cache@2 + inputs: + key: "npm-cache-pdf | $(Build.SourcesDirectory)/Temp/package.json" + path: $(Build.SourcesDirectory)/survey-pdf/node_modules + cacheHitVar: NPM_CACHE_RESTORED + displayName: Cache NPM + + - powershell: | + $env:GIT_REDIRECT_STDERR = '2>&1' + git config --global user.email "kurmanov.work@gmail.com" + git config --global user.name "dmitrykurmanov" + displayName: "set up Git config" + + - task: Npm@1 + displayName: "NPM install" + inputs: + command: install + verbose: false + workingDir: $(Build.SourcesDirectory)/survey-pdf + 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: "SurveyJSLibraryBuildCore" + downloadPath: "$(System.ArtifactsDirectory)" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCore/packages/survey-core" + Contents: "**" + TargetFolder: "$(Build.SourcesDirectory)/survey-pdf/node_modules/survey-core" + OverWrite: true + + # npm run release with version + - task: CopyFiles@2 + inputs: + SourceFolder: "$(System.ArtifactsDirectory)/SurveyJSLibraryBuildCore/" + Contents: "version.txt" + TargetFolder: "$(Build.SourcesDirectory)/" + OverWrite: true + displayName: "Copy Build Artifact - SurveyJSVersion File" + + - powershell: | + $version = Get-Content $(Build.SourcesDirectory)/version.txt + Write-Host "##vso[task.setvariable variable=SurveyJSVersion;]$version" + displayName: "setup SurveyJSVersion variable from SurveyJSVersionFile" + + - powershell: | + cd $(Build.SourcesDirectory)/survey-pdf + npm run release -- --release-as $(SurveyJSVersion) + displayName: "npm run release specific version" + ##################################################### + + - task: DownloadBuildArtifacts@0 + inputs: + buildType: "specific" + project: "af2804d2-859a-4705-9ef5-cdf46d1d5d4f" + pipeline: "42" + specificBuildWithTriggering: true + buildVersionToDownload: "latest" + downloadType: "single" + artifactName: "SurveyJSWidgetsBuild" + downloadPath: "$(System.ArtifactsDirectory)" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(System.ArtifactsDirectory)/SurveyJSWidgetsBuild/packages/survey-widgets" + Contents: "**" + TargetFolder: "$(Build.SourcesDirectory)/survey-pdf/node_modules/surveyjs-widgets" + OverWrite: true + + - script: | + cd $(Build.SourcesDirectory)/survey-pdf + npm run build_fonts + displayName: "build fonts" + + - script: | + cd $(Build.SourcesDirectory)/survey-pdf + npm run build_prod + displayName: "build" + + - script: | + cd $(Build.SourcesDirectory)/survey-pdf + npm test + displayName: "unit tests" + + - task: PublishCodeCoverageResults@1 + inputs: + codeCoverageTool: Cobertura # or JaCoCo + summaryFileLocation: "$(System.DefaultWorkingDirectory)/**/*coverage.xml" + reportDirectory: "$(System.DefaultWorkingDirectory)/**/coverage" + + - script: | + cd $(Build.SourcesDirectory)/survey-pdf + npm run doc_gen + displayName: "generate docs" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(Build.SourcesDirectory)/survey-pdf/docs" + Contents: | + classes.json + pmes.json + surveyjs_definition.json + TargetFolder: "$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf" + OverWrite: true + CleanTargetFolder: false + displayName: "copy generated docs to the local surveyjs/service repo" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(Build.SourcesDirectory)/survey-pdf" + Contents: "README.md" + TargetFolder: "$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf" + displayName: "copy generated docs to the local surveyjs/service repo" + + # - task: DeleteFiles@1 + # inputs: + # SourceFolder: '$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf' + # Contents: 'PdfExportOverview.md' + # Rename-Item -Path "$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsPdf/README.md" -NewName "PdfExportOverview.md" + + # read about the problem with git output ($env:GIT_REDIRECT_STDERR = '2>&1') : + # https://github.com/microsoft/azure-pipelines-yaml/issues/248 + # https://stackoverflow.com/questions/58485585/azure-pipeline-powershell-and-git-on-windows-server-2019-gives-error-in-output + - powershell: | + cd $(Build.SourcesDirectory)/service + git pull origin master + git fetch origin master --tags --force + git checkout master + git add surveyjs.io/App_Data/DocsPdf + git commit -m "updated survey-pdf docs" + git pull origin master + git push origin master + displayName: "git surveyjs/service push updated docs" + + - task: CopyFiles@2 + inputs: + SourceFolder: "$(Build.SourcesDirectory)/survey-pdf/packages/survey-pdf" + targetFolder: $(Build.ArtifactStagingDirectory)/SurveyjsPDFbuild/packages/survey-pdf + + - task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: "$(Build.ArtifactStagingDirectory)/SurveyjsPDFbuild/" + ArtifactName: "SurveyjsPDFbuild" + publishLocation: "Container"