-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
128 lines (127 loc) · 5.36 KB
/
azure-pipelines.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
name: "api-aws-step-function"
trigger:
- master
- develop
- feature/*
- bugfix/*
stages:
- stage: "Install_and_Build"
displayName: "Test and Build"
jobs:
- job: "npm_nstall_and_build"
displayName: "Install and Build"
steps:
- task: NodeTool@0
displayName: "Setup Node.Js Environment"
inputs:
versionSpec: "v12.16.1"
- script: npm install
displayName: "Installing Dependencies"
- script: env
displayName: "Logs"
- script: npm run test:cov
displayName: "Unit Test"
- task: PublishTestResults@2
inputs:
testResultsFormat: "JUnit"
testResultsFiles: "**/test-*.xml"
failTaskOnFailedTests: true
testRunTitle: "Jest Test"
- script: npm run build:webpack
displayName: "Building Package"
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: "$(Build.Repository.LocalPath)/dist"
includeRootFolder: true
archiveType: "zip"
archiveFile: "$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip"
replaceExistingArchive: true
verbose: true
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)"
ArtifactName: "build"
publishLocation: "Container"
- stage: Deploy
displayName: "Deploy"
jobs:
- job: "Deploy_to_Dev"
displayName: "DeployTODev"
condition: "and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))"
variables:
- group: "api_aws_step_function_dev"
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: "current"
downloadType: "single"
artifactName: "build"
downloadPath: "$(System.ArtifactsDirectory)"
- task: ExtractFiles@1
inputs:
archiveFilePatterns: "$(System.ArtifactsDirectory)/build/$(Build.BuildId).zip"
destinationFolder: "$(System.ArtifactsDirectory)/dist"
cleanDestinationFolder: true
- script: |
node '$(System.ArtifactsDirectory)/dist/dist/app.js' > '$(System.ArtifactsDirectory)/dist/dist/app.yaml'
displayName: "Generate AppEngine Config"
- script: cat '$(System.ArtifactsDirectory)/dist/dist/app.yaml'
displayName: "Debug"
- task: DownloadSecureFile@1
displayName: "Download GCP Key"
name: "AuthKey"
inputs:
secureFile: "api-aws-step-function-dev-bdb39695a190.json"
retryCount: "2"
- script: |
wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --quiet --usage-reporting=false --path-update=true
PATH="google-cloud-sdk/bin:${PATH}"
gcloud --quiet components update
displayName: "install gcloud SDK"
- script: |
gcloud auth activate-service-account --key-file $(AuthKey.secureFilePath)
gcloud config set project $(GCP_PROJECT_NAME)
displayName: "Activate Service Account"
- script: yes | gcloud app deploy '$(System.ArtifactsDirectory)/dist/dist'
displayName: "Deploy to AppEngine"
- job: "Deploy_to_Prod"
displayName: "DeployToProd"
condition: "and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))"
variables:
- group: "api_aws_step_function_prod"
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: "current"
downloadType: "single"
artifactName: "build"
downloadPath: "$(System.ArtifactsDirectory)"
- task: ExtractFiles@1
inputs:
archiveFilePatterns: "$(System.ArtifactsDirectory)/build/$(Build.BuildId).zip"
destinationFolder: "$(System.ArtifactsDirectory)/dist"
cleanDestinationFolder: true
- script: |
node '$(System.ArtifactsDirectory)/dist/dist/app.js' > '$(System.ArtifactsDirectory)/dist/dist/app.yaml'
displayName: "Generate AppEngine config"
- task: DownloadSecureFile@1
displayName: "Download GCP Key"
name: "AuthKey"
inputs:
secureFile: "api-aws-step-function-prod-680c23326ad8.json"
retryCount: "2"
- script: env
displayName: "Logs"
- script: |
wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
tar zxvf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --quiet --usage-reporting=false --path-update=true
PATH="google-cloud-sdk/bin:${PATH}"
gcloud --quiet components update
displayName: "install gcloud SDK"
- script: |
gcloud auth activate-service-account --key-file $(AuthKey.secureFilePath)
gcloud config set project $(GCP_PROJECT_NAME)
displayName: "Activate Service Account"
- script: yes | gcloud app deploy '$(System.ArtifactsDirectory)/dist/dist'
displayName: "Deploy to AppEngine"