Skip to content

Commit 2e0e2ee

Browse files
committed
Update azure-pipelines-production.yml for Azure Pipelines
1 parent 918e716 commit 2e0e2ee

1 file changed

Lines changed: 126 additions & 131 deletions

File tree

azure-pipelines-production.yml

Lines changed: 126 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,137 +1,132 @@
11
trigger:
2-
- none
2+
- none
33

44
pool:
5-
vmImage: ubuntu-latest
5+
vmImage: ubuntu-latest
66

77
stages:
8-
- stage: Build
9-
displayName: Build stage
10-
jobs:
11-
- job: Build
12-
steps:
13-
14-
- task: DownloadSecureFile@1
15-
displayName: 'download PROD Africa backend'
16-
inputs:
17-
secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File.
18-
19-
- task: CopyFiles@2
20-
displayName: 'copy PROD Africa backend'
21-
inputs:
22-
SourceFolder: '$(Agent.TempDirectory)'
23-
Contents: BACKEND_ENV_FILE_AFRICA
24-
TargetFolder: './backend'
25-
26-
- script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env
27-
displayName: 'rename PROD Africa .env'
28-
- task: DownloadSecureFile@1
29-
displayName: 'download PROD Africa frontend'
30-
inputs:
31-
secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File.
32-
33-
- task: CopyFiles@2
34-
displayName: 'copy PROD Africa frontend'
35-
inputs:
36-
SourceFolder: '$(Agent.TempDirectory)'
37-
Contents: FRONTEND_ENV_FILE_AFRICA
38-
TargetFolder: './frontend'
39-
40-
- script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env
41-
displayName: 'rename PROD Africa .env'
42-
43-
- script: ls -a ./frontend
44-
displayName: 'ls'
45-
46-
- script: ls -Rn
47-
displayName: 'ls'
48-
49-
50-
- task: NodeTool@0
51-
inputs:
52-
versionSpec: '12.20.1'
53-
displayName: 'Install Node.js'
54-
55-
- task: Bash@3
56-
inputs:
57-
targetType: 'inline'
58-
script: |
59-
node -v
60-
npm -v
61-
npm install
62-
npm run build
63-
64-
- task: ArchiveFiles@2
65-
displayName: 'Archive files'
66-
inputs:
67-
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
68-
includeRootFolder: false
69-
archiveType: zip
70-
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
71-
replaceExistingArchive: true
72-
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
73-
artifact: drop
74-
75-
76-
- deployment: VMDeploy_AFRICA
77-
dependsOn: Build
78-
displayName: Web deploy Africa
79-
environment:
80-
name: PROD
81-
resourceType: VirtualMachine
82-
tags: africa
83-
strategy:
84-
runOnce:
85-
preDeploy:
8+
- stage: Build
9+
displayName: Build stage
10+
jobs:
11+
- job: Build
8612
steps:
87-
- task: DownloadPipelineArtifact@2
88-
inputs:
89-
buildType: 'current'
90-
artifactName: drop
91-
targetPath: '$(Pipeline.Workspace)/drop'
92-
93-
- script: echo initialize, cleanup, backup, install certs
94-
95-
deploy:
96-
steps:
97-
- task: Bash@3
98-
inputs:
99-
targetType: 'inline'
100-
script: |
101-
Modify deployment script based on the app type
102-
echo "Starting deployment script run"
103-
104-
105-
- task: ExtractFiles@1
106-
inputs:
107-
archiveFilePatterns: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
108-
destinationFolder: '$(Pipeline.Workspace)/japp'
109-
cleanDestinationFolder: true
110-
overwriteExistingFiles: true
111-
112-
- task: DeleteFiles@1
113-
inputs:
114-
SourceFolder: '$(Pipeline.Workspace)/drop'
115-
Contents: '$(Build.BuildId).zip'
116-
117-
- task: Bash@3
118-
inputs:
119-
targetType: 'inline'
120-
script: |
121-
pm2 restart index
122-
sudo systemctl restart nginx
123-
124-
125-
routeTraffic:
126-
steps:
127-
- script: echo routing traffic
128-
postRouteTraffic:
129-
steps:
130-
- script: echo health check post-route traffic
131-
on:
132-
failure:
133-
steps:
134-
- script: echo Restore from backup! This is on failure
135-
success:
136-
steps:
137-
- script: echo Notify! This is on success
13+
- task: DownloadSecureFile@1
14+
displayName: 'download PROD Africa backend'
15+
inputs:
16+
secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File.
17+
18+
- task: CopyFiles@2
19+
displayName: 'copy PROD Africa backend'
20+
inputs:
21+
SourceFolder: '$(Agent.TempDirectory)'
22+
Contents: BACKEND_ENV_FILE_AFRICA
23+
TargetFolder: './backend'
24+
25+
- script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env
26+
displayName: 'rename PROD Africa .env'
27+
- task: DownloadSecureFile@1
28+
displayName: 'download PROD Africa frontend'
29+
inputs:
30+
secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File.
31+
32+
- task: CopyFiles@2
33+
displayName: 'copy PROD Africa frontend'
34+
inputs:
35+
SourceFolder: '$(Agent.TempDirectory)'
36+
Contents: FRONTEND_ENV_FILE_AFRICA
37+
TargetFolder: './frontend'
38+
39+
- script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env
40+
displayName: 'rename PROD Africa .env'
41+
42+
- script: ls -a ./frontend
43+
displayName: 'ls'
44+
45+
- script: ls -Rn
46+
displayName: 'ls'
47+
48+
- task: NodeTool@0
49+
inputs:
50+
versionSpec: '12.20.1'
51+
displayName: 'Install Node.js'
52+
53+
- task: Bash@3
54+
inputs:
55+
targetType: 'inline'
56+
script: |
57+
node -v
58+
npm -v
59+
npm install
60+
npm run build
61+
62+
- task: ArchiveFiles@2
63+
displayName: 'Archive files'
64+
inputs:
65+
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
66+
includeRootFolder: false
67+
archiveType: zip
68+
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
69+
replaceExistingArchive: true
70+
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
71+
artifact: drop
72+
73+
- deployment: VMDeploy_AFRICA
74+
dependsOn: Build
75+
displayName: Web deploy Africa
76+
environment:
77+
name: PROD
78+
resourceType: VirtualMachine
79+
tags: africa
80+
strategy:
81+
runOnce:
82+
preDeploy:
83+
steps:
84+
- task: DownloadPipelineArtifact@2
85+
inputs:
86+
buildType: 'current'
87+
artifactName: drop
88+
targetPath: '$(Pipeline.Workspace)/drop'
89+
90+
- script: echo initialize, cleanup, backup, install certs
91+
92+
deploy:
93+
steps:
94+
- task: Bash@3
95+
inputs:
96+
targetType: 'inline'
97+
script: |
98+
Modify deployment script based on the app type
99+
echo "Starting deployment script run"
100+
101+
- task: ExtractFiles@1
102+
inputs:
103+
archiveFilePatterns: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip'
104+
destinationFolder: '$(Pipeline.Workspace)/japp'
105+
cleanDestinationFolder: true
106+
overwriteExistingFiles: true
107+
108+
- task: DeleteFiles@1
109+
inputs:
110+
SourceFolder: '$(Pipeline.Workspace)/drop'
111+
Contents: '$(Build.BuildId).zip'
112+
113+
- task: Bash@3
114+
inputs:
115+
targetType: 'inline'
116+
script: |
117+
pm2 restart index
118+
sudo systemctl restart nginx
119+
120+
routeTraffic:
121+
steps:
122+
- script: echo routing traffic
123+
postRouteTraffic:
124+
steps:
125+
- script: echo health check post-route traffic
126+
on:
127+
failure:
128+
steps:
129+
- script: echo Restore from backup! This is on failure
130+
success:
131+
steps:
132+
- script: echo Notify! This is on success

0 commit comments

Comments
 (0)