-
Notifications
You must be signed in to change notification settings - Fork 55
/
azure-pipelines-africa.yml
137 lines (116 loc) · 3.74 KB
/
azure-pipelines-africa.yml
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
137
#Works
trigger:
- none
pool:
vmImage: ubuntu-latest
stages:
- stage: Build_africa
displayName: Build stage africa
jobs:
- job: Build_africa
steps:
- task: DownloadSecureFile@1
displayName: 'download AFRICA backendend'
inputs:
secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File.
- task: CopyFiles@2
displayName: 'copy africa backendend'
inputs:
SourceFolder: '$(Agent.TempDirectory)'
Contents: BACKEND_ENV_FILE_AFRICA
TargetFolder: './backend'
- script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env
displayName: 'rename africa .env'
- task: DownloadSecureFile@1
displayName: 'download africa frontend'
inputs:
secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File.
- task: CopyFiles@2
displayName: 'copy africa frontend'
inputs:
SourceFolder: '$(Agent.TempDirectory)'
Contents: FRONTEND_ENV_FILE_AFRICA
TargetFolder: './frontend'
- script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env
displayName: 'rename africa .env'
- script: ls -a ./frontend
displayName: 'ls'
- script: ls -Rn
displayName: 'ls'
- task: NodeTool@0
inputs:
versionSpec: '12.20.1'
displayName: 'Install Node.js'
- task: Bash@3
inputs:
targetType: 'inline'
script: |
node -v
npm -v
npm install
npm run build
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop_africa
- deployment: VMDeploy_AFRICA
dependsOn: Build_africa
displayName: DEPLOY AFRICA
environment:
name: PROD
resourceType: VirtualMachine
tags: africa
strategy:
runOnce:
preDeploy:
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
artifactName: drop_africa
targetPath: '$(Pipeline.Workspace)/drop_africa'
- script: echo initialize, cleanup, backup, install certs
deploy:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
# Modify deployment script based on the app type
echo "Starting deployment script run"
- task: ExtractFiles@1
inputs:
archiveFilePatterns: '$(Pipeline.Workspace)/drop_africa/$(Build.BuildId).zip'
destinationFolder: '$(Pipeline.Workspace)/japp'
cleanDestinationFolder: true
overwriteExistingFiles: true
- task: DeleteFiles@1
inputs:
SourceFolder: '$(Pipeline.Workspace)/drop_africa'
Contents: '$(Build.BuildId).zip'
- task: Bash@3
inputs:
targetType: 'inline'
script: |
cd /home/azureuser/azagent/_work/2/japp
pm2 restart index
sudo systemctl restart nginx
routeTraffic:
steps:
- script: echo routing traffic
postRouteTraffic:
steps:
- script: echo health check post-route traffic
on:
failure:
steps:
- script: echo Restore from backup! This is on failure
success:
steps:
- script: echo Notify! This is on success