From 2e0e2ee3e93302b32364844323372662aec3eb93 Mon Sep 17 00:00:00 2001 From: Javier Hernandez Date: Wed, 21 Feb 2024 11:18:29 +0200 Subject: [PATCH 1/5] Update azure-pipelines-production.yml for Azure Pipelines --- azure-pipelines-production.yml | 257 ++++++++++++++++----------------- 1 file changed, 126 insertions(+), 131 deletions(-) diff --git a/azure-pipelines-production.yml b/azure-pipelines-production.yml index 3cbbe3a15..82c49ddeb 100644 --- a/azure-pipelines-production.yml +++ b/azure-pipelines-production.yml @@ -1,137 +1,132 @@ trigger: -- none + - none pool: - vmImage: ubuntu-latest + vmImage: ubuntu-latest stages: -- stage: Build - displayName: Build stage - jobs: - - job: Build - steps: - - - task: DownloadSecureFile@1 - displayName: 'download PROD Africa backend' - inputs: - secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File. - - - task: CopyFiles@2 - displayName: 'copy PROD Africa backend' - inputs: - SourceFolder: '$(Agent.TempDirectory)' - Contents: BACKEND_ENV_FILE_AFRICA - TargetFolder: './backend' - - - script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env - displayName: 'rename PROD Africa .env' - - task: DownloadSecureFile@1 - displayName: 'download PROD Africa frontend' - inputs: - secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File. - - - task: CopyFiles@2 - displayName: 'copy PROD Africa frontend' - inputs: - SourceFolder: '$(Agent.TempDirectory)' - Contents: FRONTEND_ENV_FILE_AFRICA - TargetFolder: './frontend' - - - script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env - displayName: 'rename PROD 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 - - - - deployment: VMDeploy_AFRICA - dependsOn: Build - displayName: Web deploy Africa - environment: - name: PROD - resourceType: VirtualMachine - tags: africa - strategy: - runOnce: - preDeploy: + - stage: Build + displayName: Build stage + jobs: + - job: Build steps: - - task: DownloadPipelineArtifact@2 - inputs: - buildType: 'current' - artifactName: drop - targetPath: '$(Pipeline.Workspace)/drop' - - - 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/$(Build.BuildId).zip' - destinationFolder: '$(Pipeline.Workspace)/japp' - cleanDestinationFolder: true - overwriteExistingFiles: true - - - task: DeleteFiles@1 - inputs: - SourceFolder: '$(Pipeline.Workspace)/drop' - Contents: '$(Build.BuildId).zip' - - - task: Bash@3 - inputs: - targetType: 'inline' - script: | - 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 \ No newline at end of file + - task: DownloadSecureFile@1 + displayName: 'download PROD Africa backend' + inputs: + secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File. + + - task: CopyFiles@2 + displayName: 'copy PROD Africa backend' + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: BACKEND_ENV_FILE_AFRICA + TargetFolder: './backend' + + - script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env + displayName: 'rename PROD Africa .env' + - task: DownloadSecureFile@1 + displayName: 'download PROD Africa frontend' + inputs: + secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File. + + - task: CopyFiles@2 + displayName: 'copy PROD Africa frontend' + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: FRONTEND_ENV_FILE_AFRICA + TargetFolder: './frontend' + + - script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env + displayName: 'rename PROD 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 + + - deployment: VMDeploy_AFRICA + dependsOn: Build + displayName: Web deploy Africa + environment: + name: PROD + resourceType: VirtualMachine + tags: africa + strategy: + runOnce: + preDeploy: + steps: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: 'current' + artifactName: drop + targetPath: '$(Pipeline.Workspace)/drop' + + - 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/$(Build.BuildId).zip' + destinationFolder: '$(Pipeline.Workspace)/japp' + cleanDestinationFolder: true + overwriteExistingFiles: true + + - task: DeleteFiles@1 + inputs: + SourceFolder: '$(Pipeline.Workspace)/drop' + Contents: '$(Build.BuildId).zip' + + - task: Bash@3 + inputs: + targetType: 'inline' + script: | + 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 From 1b79113dd63f97b3b60a3e56c12ebb2fab5a0b70 Mon Sep 17 00:00:00 2001 From: Javier Hernandez Date: Wed, 21 Feb 2024 12:37:22 +0200 Subject: [PATCH 2/5] Update azure-pipelines-production.yml for Azure Pipelines --- azure-pipelines-production.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/azure-pipelines-production.yml b/azure-pipelines-production.yml index 82c49ddeb..4812b96b3 100644 --- a/azure-pipelines-production.yml +++ b/azure-pipelines-production.yml @@ -5,10 +5,10 @@ pool: vmImage: ubuntu-latest stages: - - stage: Build - displayName: Build stage + - stage: Build_africa + displayName: Build stage africa jobs: - - job: Build + - job: Build_africa steps: - task: DownloadSecureFile@1 displayName: 'download PROD Africa backend' @@ -68,11 +68,11 @@ stages: archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip replaceExistingArchive: true - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip - artifact: drop + artifact: drop_africa - deployment: VMDeploy_AFRICA - dependsOn: Build - displayName: Web deploy Africa + dependsOn: Build_africa + displayName: DEPLOY AFRICA environment: name: PROD resourceType: VirtualMachine @@ -84,7 +84,7 @@ stages: - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' - artifactName: drop + artifactName: drop_africa targetPath: '$(Pipeline.Workspace)/drop' - script: echo initialize, cleanup, backup, install certs @@ -100,20 +100,21 @@ stages: - task: ExtractFiles@1 inputs: - archiveFilePatterns: '$(Pipeline.Workspace)/drop/$(Build.BuildId).zip' + archiveFilePatterns: '$(Pipeline.Workspace)/drop_africa/$(Build.BuildId).zip' destinationFolder: '$(Pipeline.Workspace)/japp' cleanDestinationFolder: true overwriteExistingFiles: true - task: DeleteFiles@1 inputs: - SourceFolder: '$(Pipeline.Workspace)/drop' + SourceFolder: '$(Pipeline.Workspace)/drop_africa' Contents: '$(Build.BuildId).zip' - task: Bash@3 inputs: targetType: 'inline' script: | + cd /home/azureuser/azagent/_work/1/japp pm2 restart index sudo systemctl restart nginx From 39451d26a4747b4e4f48f4cfcb8cbdf39e1b3360 Mon Sep 17 00:00:00 2001 From: Javier Hernandez Date: Wed, 21 Feb 2024 12:53:49 +0200 Subject: [PATCH 3/5] Update azure-pipelines-production.yml for Azure Pipelines --- azure-pipelines-production.yml | 258 +++++++++++++++++---------------- 1 file changed, 131 insertions(+), 127 deletions(-) diff --git a/azure-pipelines-production.yml b/azure-pipelines-production.yml index 4812b96b3..8f78cdb7a 100644 --- a/azure-pipelines-production.yml +++ b/azure-pipelines-production.yml @@ -1,133 +1,137 @@ +# Works trigger: - - none +- none pool: - vmImage: ubuntu-latest + vmImage: ubuntu-latest stages: - - stage: Build_africa - displayName: Build stage africa - jobs: - - job: Build_africa + +- stage: Build_asia + displayName: Build stage asia + jobs: + - job: Build_asia + steps: + + - task: DownloadSecureFile@1 + displayName: 'download ASIA backendend' + inputs: + secureFile: 'BACKEND_ENV_FILE_ASIA' # string. Required. Secure File. + + - task: CopyFiles@2 + displayName: 'copy asia backendend' + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: BACKEND_ENV_FILE_ASIA + TargetFolder: './backend' + + - script: mv ./backend/BACKEND_ENV_FILE_ASIA ./backend/.env + displayName: 'rename asia .env' + - task: DownloadSecureFile@1 + displayName: 'download asia frontend' + inputs: + secureFile: 'FRONTEND_ENV_FILE_ASIA' # string. Required. Secure File. + + - task: CopyFiles@2 + displayName: 'copy asia frontend' + inputs: + SourceFolder: '$(Agent.TempDirectory)' + Contents: FRONTEND_ENV_FILE_ASIA + TargetFolder: './frontend' + + - script: mv ./frontend/FRONTEND_ENV_FILE_ASIA ./frontend/.env + displayName: 'rename asia .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_asia + + - deployment: VMDeploy_ASIA + dependsOn: Build_asia + displayName: DEPLOY ASIA + environment: + name: PROD + resourceType: VirtualMachine + tags: asia + strategy: + runOnce: + preDeploy: + steps: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: 'current' + artifactName: drop_asia + targetPath: '$(Pipeline.Workspace)/drop' + + - 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_asia/$(Build.BuildId).zip' + destinationFolder: '$(Pipeline.Workspace)/japp' + cleanDestinationFolder: true + overwriteExistingFiles: true + + - task: DeleteFiles@1 + inputs: + SourceFolder: '$(Pipeline.Workspace)/drop_asia' + Contents: '$(Build.BuildId).zip' + + - task: Bash@3 + inputs: + targetType: 'inline' + script: | + cd /home/azureuser/azagent/_work/1/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: - - task: DownloadSecureFile@1 - displayName: 'download PROD Africa backend' - inputs: - secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File. - - - task: CopyFiles@2 - displayName: 'copy PROD Africa backend' - inputs: - SourceFolder: '$(Agent.TempDirectory)' - Contents: BACKEND_ENV_FILE_AFRICA - TargetFolder: './backend' - - - script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env - displayName: 'rename PROD Africa .env' - - task: DownloadSecureFile@1 - displayName: 'download PROD Africa frontend' - inputs: - secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File. - - - task: CopyFiles@2 - displayName: 'copy PROD Africa frontend' - inputs: - SourceFolder: '$(Agent.TempDirectory)' - Contents: FRONTEND_ENV_FILE_AFRICA - TargetFolder: './frontend' - - - script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env - displayName: 'rename PROD 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' - - - 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/1/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 + - script: echo Notify! This is on success \ No newline at end of file From 2bb6f4156dbaa37d2f1c4cafb841783fb0373388 Mon Sep 17 00:00:00 2001 From: Javier Hernandez Date: Wed, 21 Feb 2024 13:20:41 +0200 Subject: [PATCH 4/5] Update azure-pipelines-production.yml for Azure Pipelines --- azure-pipelines-production.yml | 47 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/azure-pipelines-production.yml b/azure-pipelines-production.yml index 8f78cdb7a..c5d9445f5 100644 --- a/azure-pipelines-production.yml +++ b/azure-pipelines-production.yml @@ -1,4 +1,3 @@ -# Works trigger: - none @@ -7,40 +6,40 @@ pool: stages: -- stage: Build_asia - displayName: Build stage asia +- stage: Build_africa + displayName: Build stage africa jobs: - - job: Build_asia + - job: Build_africa steps: - task: DownloadSecureFile@1 - displayName: 'download ASIA backendend' + displayName: 'download AFRICA backendend' inputs: - secureFile: 'BACKEND_ENV_FILE_ASIA' # string. Required. Secure File. + secureFile: 'BACKEND_ENV_FILE_AFRICA' # string. Required. Secure File. - task: CopyFiles@2 - displayName: 'copy asia backendend' + displayName: 'copy africa backendend' inputs: SourceFolder: '$(Agent.TempDirectory)' - Contents: BACKEND_ENV_FILE_ASIA + Contents: BACKEND_ENV_FILE_AFRICA TargetFolder: './backend' - - script: mv ./backend/BACKEND_ENV_FILE_ASIA ./backend/.env - displayName: 'rename asia .env' + - script: mv ./backend/BACKEND_ENV_FILE_AFRICA ./backend/.env + displayName: 'rename africa .env' - task: DownloadSecureFile@1 - displayName: 'download asia frontend' + displayName: 'download africa frontend' inputs: - secureFile: 'FRONTEND_ENV_FILE_ASIA' # string. Required. Secure File. + secureFile: 'FRONTEND_ENV_FILE_AFRICA' # string. Required. Secure File. - task: CopyFiles@2 - displayName: 'copy asia frontend' + displayName: 'copy africa frontend' inputs: SourceFolder: '$(Agent.TempDirectory)' - Contents: FRONTEND_ENV_FILE_ASIA + Contents: FRONTEND_ENV_FILE_AFRICA TargetFolder: './frontend' - - script: mv ./frontend/FRONTEND_ENV_FILE_ASIA ./frontend/.env - displayName: 'rename asia .env' + - script: mv ./frontend/FRONTEND_ENV_FILE_AFRICA ./frontend/.env + displayName: 'rename africa .env' - script: ls -a ./frontend displayName: 'ls' @@ -71,15 +70,15 @@ stages: archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip replaceExistingArchive: true - upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip - artifact: drop_asia + artifact: drop_africa - - deployment: VMDeploy_ASIA - dependsOn: Build_asia - displayName: DEPLOY ASIA + - deployment: VMDeploy_AFRICA + dependsOn: Build_africa + displayName: DEPLOY AFRICA environment: name: PROD resourceType: VirtualMachine - tags: asia + tags: africa strategy: runOnce: preDeploy: @@ -87,7 +86,7 @@ stages: - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' - artifactName: drop_asia + artifactName: drop_africa targetPath: '$(Pipeline.Workspace)/drop' - script: echo initialize, cleanup, backup, install certs @@ -104,14 +103,14 @@ stages: - task: ExtractFiles@1 inputs: - archiveFilePatterns: '$(Pipeline.Workspace)/drop_asia/$(Build.BuildId).zip' + archiveFilePatterns: '$(Pipeline.Workspace)/drop_africa/$(Build.BuildId).zip' destinationFolder: '$(Pipeline.Workspace)/japp' cleanDestinationFolder: true overwriteExistingFiles: true - task: DeleteFiles@1 inputs: - SourceFolder: '$(Pipeline.Workspace)/drop_asia' + SourceFolder: '$(Pipeline.Workspace)/drop_africa' Contents: '$(Build.BuildId).zip' - task: Bash@3 From c4467923aa6a1861dc655bac5028c8c41ccabfad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 05:45:17 +0000 Subject: [PATCH 5/5] Bump ip from 1.1.8 to 1.1.9 in /frontend Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9. - [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1e54e94c2..62366565b 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -10548,9 +10548,9 @@ } }, "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==" }, "ip-regex": { "version": "2.1.0",