forked from surveyjs/survey-library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
devops-integration.yaml
136 lines (118 loc) · 4.4 KB
/
devops-integration.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# 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: Service # The name used to reference this repository in the checkout step
type: github
endpoint: dmitrykurmanov:admin
name: surveyjs/service
trigger:
batch: true
branches:
include:
- master
tags:
exclude:
- v*.*.*
pool:
vmImage: "Ubuntu-18.04"
steps:
- checkout: self
- checkout: Service
persistCredentials: true
clean: true
- task: NodeTool@0
inputs:
versionSpec: "14.x"
displayName: "Install Node.js"
# setup next release version
- task: DownloadBuildArtifacts@0
inputs:
buildType: "specific"
project: "af2804d2-859a-4705-9ef5-cdf46d1d5d4f"
pipeline: "47"
buildVersionToDownload: "latest"
downloadType: "single"
artifactName: "ReleaseVersionFile"
downloadPath: "$(System.ArtifactsDirectory)"
- task: CopyFiles@2
inputs:
SourceFolder: "$(System.ArtifactsDirectory)/ReleaseVersionFile/"
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"
##########################################################################
- script: |
cd $(Build.SourcesDirectory)/survey-library
npm install
npm run release -- --release-as $(SurveyJSVersion)
npm run build_prod
npm run build_core
npm run build_knockout_ui
npm run build_react_ui
npm run build_vue_ui
displayName: "npm install and build"
- script: |
cd $(Build.SourcesDirectory)/survey-library
npm run testsingle
displayName: "run unit tests"
- script: |
cd $(Build.SourcesDirectory)/survey-library
npm run testcafe_ci
displayName: "run functional tests"
env:
TESTCAFE_DASHBOARD_AUTHENTICATION_TOKEN: $(TESTCAFE_DASHBOARD_AUTHENTICATION_TOKEN)
TESTCAFE_DASHBOARD_URL: $(TESTCAFE_DASHBOARD_URL)
- script: |
cd $(Build.SourcesDirectory)/survey-library
npm run doc_gen
displayName: "generate docs"
- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-library/docs"
TargetFolder: "$(Build.SourcesDirectory)/service/surveyjs.io/App_Data/DocsLibrary"
CleanTargetFolder: true
displayName: "copy generated docs to the local surveyjs/service repo"
# 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
$env:GIT_REDIRECT_STDERR = '2>&1'
git config --global user.email "[email protected]"
git config --global user.name "dmitrykurmanov"
git checkout master
git pull origin master
git fetch --tags --force
git add surveyjs.io/App_Data/DocsLibrary
git commit -m "updated survey-library docs"
git pull origin master
git push origin master
displayName: "git surveyjs/service push updated docs"
- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-library/build"
TargetFolder: "$(Build.ArtifactStagingDirectory)/SurveyJSLibraryBuild/packages"
- task: CopyFiles@2
inputs:
SourceFolder: "$(Build.SourcesDirectory)/survey-library/build"
TargetFolder: "$(Build.ArtifactStagingDirectory)/SurveyJSLibraryBuild/build"
#trigger next build via the artifact file 'version.txt'
- task: CopyFiles@2
inputs:
contents: "version.txt"
targetFolder: $(Build.ArtifactStagingDirectory)/SurveyJSLibraryBuild
displayName: "copy version file to Build.ArtifactStagingDirectory"
#publishLocation: 'Container' - store the artifact in Azure Pipelines
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)/SurveyJSLibraryBuild/"
ArtifactName: "SurveyJSLibraryBuild"
publishLocation: "Container"