Skip to content

Commit 36b9393

Browse files
committed
Update azure-pipelines-production.yml for Azure Pipelines
Testing deployment to Africa enviroment
1 parent e7143f1 commit 36b9393

1 file changed

Lines changed: 131 additions & 13 deletions

File tree

azure-pipelines-production.yml

Lines changed: 131 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,137 @@
1-
# Starter pipeline
2-
# Start with a minimal pipeline that you can customize to build and deploy your code.
3-
# Add steps that build, run tests, deploy, and more:
4-
# https://aka.ms/yaml
5-
61
trigger:
7-
- PROD
2+
- none
83

94
pool:
105
vmImage: ubuntu-latest
116

12-
steps:
13-
- script: echo Hello, world!
14-
displayName: 'Run a one-line script'
7+
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:
86+
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+
15124

16-
- script: |
17-
echo Add other tasks to build, test, and deploy your project.
18-
echo See https://aka.ms/yaml
19-
displayName: 'Run a multi-line script'
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

0 commit comments

Comments
 (0)