From f658201d5af7162fb08e35d8172bc758f1a03dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B9=AF=E6=9C=AC=20=E9=96=8B?= Date: Tue, 18 Jul 2023 03:35:58 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20240:=20pipeline=E3=81=AE=E6=A7=8B?= =?UTF-8?q?=E9=80=A0=E3=82=92export=E3=81=97=E3=81=A6git=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task2205: pipelineの構造をexportしてgit管理する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2205) - PipelineをYAML形式でExportし、git管理に追加 ## レビューポイント - 配置するディレクトリ名などは適切であるか - JSON形式だと未設定の項目の情報なども出て10倍弱のサイズになってしまうため、可読性の観点でJSONでなくYAMLを選択したが問題ないか --- configurations/pipeline/ODMS Deploy.yml | 116 ++++++++++++++++++ .../pipeline/ODMS Staging Deploy.yml | 114 +++++++++++++++++ 2 files changed, 230 insertions(+) create mode 100644 configurations/pipeline/ODMS Deploy.yml create mode 100644 configurations/pipeline/ODMS Staging Deploy.yml diff --git a/configurations/pipeline/ODMS Deploy.yml b/configurations/pipeline/ODMS Deploy.yml new file mode 100644 index 0000000..1da4e72 --- /dev/null +++ b/configurations/pipeline/ODMS Deploy.yml @@ -0,0 +1,116 @@ +# Variable 'static_dictation_deployment_token' was defined in the Variables tab +trigger: + branches: + include: + - refs/heads/develop +jobs: +- job: Job_1 + displayName: Dictation App Service Deploy + pool: + vmImage: ubuntu-latest + steps: + - checkout: self + clean: true + fetchDepth: 1 + - task: Npm@1 + displayName: npm ci + inputs: + command: ci + workingDir: dictation_server + verbose: false + - task: AzureKeyVault@2 + displayName: 'Azure Key Vault: kv-odms-secret-dev' + enabled: False + inputs: + ConnectedServiceName: 82047c72-0cfe-43b0-bb2f-cdfd8b165e68 + KeyVaultName: kv-odms-secret-dev + - task: Bash@3 + displayName: Bash Script (Test) + inputs: + targetType: inline + filePath: cd dictation_server && JWT_PUBLIC_KEY="$JWT_PUBLIC_KEY" && npm run test + script: cd dictation_server && npm run test + - task: Docker@0 + displayName: build + inputs: + azureSubscriptionEndpoint: 827be338-1846-4102-b006-f457c92883d3 + azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}' + dockerFile: DockerfileServerDictation.dockerfile + imageName: $(Build.Repository.Name)/dictation:latest + - task: Docker@0 + displayName: Push + inputs: + azureSubscriptionEndpoint: 827be338-1846-4102-b006-f457c92883d3 + azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}' + action: Push an image + imageName: $(Build.Repository.Name)/dictation:latest +- job: Job_2 + displayName: Dictation Static App Service Deploy + pool: + vmImage: ubuntu-latest + steps: + - checkout: self + clean: true + fetchDepth: 1 + - task: Npm@1 + displayName: npm ci + inputs: + command: ci + workingDir: dictation_client + verbose: false + - task: Bash@3 + displayName: Bash Script + inputs: + targetType: inline + script: cd dictation_client && npm run build + - task: AzureStaticWebApp@0 + displayName: 'Static Web App: ' + inputs: + app_location: /dictation_client/build + config_file_location: /dictation_client + skip_app_build: true + skip_api_build: true + is_static_export: false + verbose: false + azure_static_web_apps_api_token: $(static_dictation_deployment_token) +- job: Job_3 + displayName: DB migration + dependsOn: + - Job_1 + - Job_2 + pool: + name: db-migrate-pipelines + steps: + - checkout: self + clean: true + fetchDepth: 1 + - task: GoTool@0 + displayName: Use Go 1.18 + inputs: + version: 1.18 + - task: Go@0 + displayName: go install + inputs: + command: custom + customCommand: install + arguments: github.com/rubenv/sql-migrate/sql-migrate@latest + - task: AzureKeyVault@2 + displayName: 'Azure Key Vault: kv-odms-secret-dev' + inputs: + ConnectedServiceName: 82047c72-0cfe-43b0-bb2f-cdfd8b165e68 + KeyVaultName: kv-odms-secret-dev + - task: CmdLine@2 + displayName: migration + inputs: + script: >2 + # DB接続情報書き換え + sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_PASS/$(db-pass)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_USERNAME/$(db-user)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml + /home/azureuser/go/bin/sql-migrate --version + cat ./dictation_server/db/dbconfig.yml + # migration実行 + /home/azureuser/go/bin/sql-migrate up -config=dictation_server/db/dbconfig.yml -env=ci +... diff --git a/configurations/pipeline/ODMS Staging Deploy.yml b/configurations/pipeline/ODMS Staging Deploy.yml new file mode 100644 index 0000000..6658122 --- /dev/null +++ b/configurations/pipeline/ODMS Staging Deploy.yml @@ -0,0 +1,114 @@ +# Variable 'static_dictation_deployment_token' was defined in the Variables tab +trigger: + branches: + include: + - refs/heads/develop +name: $(date:yyyyMMdd)$(rev:.r) +jobs: +- job: Job_1 + displayName: Dictation App Service Deploy + pool: + vmImage: ubuntu-latest + steps: + - checkout: self + fetchDepth: 2 + - task: Npm@1 + displayName: npm ci + inputs: + command: ci + workingDir: dictation_server + verbose: false + - task: AzureKeyVault@2 + displayName: 'Azure Key Vault: kv-odms-secret-stg' + enabled: False + inputs: + ConnectedServiceName: 82047c72-0cfe-43b0-bb2f-cdfd8b165e68 + KeyVaultName: kv-odms-secret-stg + SecretsFilter: token-public-key + - task: Bash@3 + displayName: Bash Script (Test) + inputs: + targetType: inline + script: cd dictation_server && npm run test + - task: Docker@0 + displayName: build + inputs: + azureSubscriptionEndpoint: 827be338-1846-4102-b006-f457c92883d3 + azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}' + dockerFile: DockerfileServerDictation.dockerfile + imageName: $(Build.Repository.Name)/staging/dictation:latest + - task: Docker@0 + displayName: Push + inputs: + azureSubscriptionEndpoint: 827be338-1846-4102-b006-f457c92883d3 + azureContainerRegistry: '{"loginServer":"crodmsregistrymaintenance.azurecr.io", "id" : "/subscriptions/108fb131-cdca-4729-a2be-e5bd8c0b3ba7/resourceGroups/maintenance-rg/providers/Microsoft.ContainerRegistry/registries/crOdmsRegistryMaintenance"}' + action: Push an image + imageName: $(Build.Repository.Name)/staging/dictation:latest +- job: Job_2 + displayName: Dictation Static App Service Deploy + pool: + vmImage: ubuntu-latest + steps: + - checkout: self + fetchDepth: 2 + - task: Npm@1 + displayName: npm ci + inputs: + command: ci + workingDir: dictation_client + verbose: false + - task: Bash@3 + displayName: Bash Script + inputs: + targetType: inline + script: cd dictation_client && cp -f .env.staging .env && npm run build + - task: AzureStaticWebApp@0 + displayName: 'Static Web App: ' + inputs: + app_location: /dictation_client/build + config_file_location: /dictation_client + skip_app_build: true + skip_api_build: true + is_static_export: false + verbose: false + azure_static_web_apps_api_token: $(static_dictation_deployment_token) +- job: Job_3 + displayName: DB migration + dependsOn: + - Job_1 + - Job_2 + pool: + name: db-migrate-pipelines + steps: + - checkout: self + fetchDepth: 2 + - task: GoTool@0 + displayName: Use Go 1.18 + inputs: + version: 1.18 + - task: Go@0 + displayName: go install + inputs: + command: custom + customCommand: install + arguments: github.com/rubenv/sql-migrate/sql-migrate@latest + - task: AzureKeyVault@2 + displayName: 'Azure Key Vault: kv-odms-secret-stg' + inputs: + ConnectedServiceName: 82047c72-0cfe-43b0-bb2f-cdfd8b165e68 + KeyVaultName: kv-odms-secret-stg + - task: CmdLine@2 + displayName: migration + inputs: + script: >2 + # DB接続情報書き換え + sed -i -e "s/DB_NAME/$(db-name)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_PASS/$(db-pass)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_USERNAME/$(db-user)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_PORT/$(db-port)/g" ./dictation_server/db/dbconfig.yml + sed -i -e "s/DB_HOST/$(db-host)/g" ./dictation_server/db/dbconfig.yml + /home/azureuser/go/bin/sql-migrate --version + cat ./dictation_server/db/dbconfig.yml + # migration実行 + /home/azureuser/go/bin/sql-migrate up -config=dictation_server/db/dbconfig.yml -env=ci +...