17 Commits

Author SHA1 Message Date
SAITO-PC-3\saito.k
e76242bddd Functionsのテストで使用する環境変数を修正 2024-04-25 18:19:48 +09:00
湯本 開
cf56239da2 Merged PR 669: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する
## 概要
[Task3427: Pipeline上でdocker-composeを用いてMySQLを起動する方法を調査する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3427)

- MySQLでUnitTestを実施する仕組みを作成
  - DevContainerにUnitTestからのみアクセスされるMySQLが動くコンテナ( `test_mysql_db` )を追加
  - テストでMySQLを使用し、上記 `test_mysql_db` に対してアクセスするよう構成
  - テストの前処理で `test_mysql_db` の全てのテーブルをTRUNCATEする処理を実行し、データをクリアする
    - 常にテスト用MySQLは起動しているが、テスト実行前にクリアされるので空っぽ前提の状態でテストを実施できる
  - 実際にMySQLを使用して実行されるテストを1つ追加
    - `users.service.spec.ts | UsersService.createUser` が対象
- Pipeline上でDevContainerを起動し、DevContainer内で `npm ci` `(UnitTest用DBへの) migration` `npm run test` を行う仕組みを作成
  - Pipelineを追加
    - **StagingPipelineでテスト・ステップを切り出し**
  - Pipelineテスト用DevContainer(のdocker-compose.yml)を作成
    - 構成は通常の物と同一だが、ネットワーク設定だけ外部のMySQLやRedisと通信しない前提に変更している
  - テストの実行環境を自己ホストではなく、一般で提供されているマシンに変更
    - 自己ホストのマシンにdocker-composeが入ってない/ビルド後のクリア処理が大変等の理由
- テストで使用する環境変数を `.env.test` という別環境変数に切り出し
  - そうすることで、PipelineでKeyVaultへのアクセスをする必要がなくなる
- **migrationの漏れを修正**
  - テストが通らないことで発覚したmigration漏れを修正
- **テストコードを修正**
  - **Date型のミリ秒単位の誤差を setMillseconds(0) を用いることで0にセットするコードを追加(ライセンス付近)**

## レビューポイント
- **WIPレビュー以降の追加の修正で違和感のある箇所はないか**
  - コミット履歴等で追っていただいた方が楽かと思います
  - 直近の`Merge branch 'develop' into feature/3427/poc-mysql-test` 以降がWIP以降に変更されたコードです
- **レビュー通過後、developのPipelineについては手動で同等のコードに変更→PRをdevelopにマージ予定だが進め方として問題はないか**
- [※WIPでレビュー済み] テスト用DevContainerを別途作成したが、現行のDevContainerを使用するよう頑張った方がいいか?
  - [※WIPでレビュー済み] CI/CDの実行速度面を考慮し、使用されないMySQLとRedisのサービスとネットワーク作成が同居しているdocker-compose.ymlの実行を避けたが、管理対象は増えているので議論の余地はある
- [※WIPでレビュー済み] MySQLでUnitTestを実行する際に懸念事項はないか
- [※WIPでレビュー済み] Dockerを起動する関係でCI/CDのスピードが数分遅くなると思われるが、許容可能か
- [※WIPでレビュー済み] `.env.test` に置き換えて問題ないか

## 動作確認状況
- ローカル&Pipelineで実行して確認済
2024-01-23 07:58:42 +00:00
saito.k
9380d9bfc6 Merged PR 629: STGのパイプラインに環境変数を追加する
## 概要
[Task3326: STG、PRODのパイプラインに環境変数を追加する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3326)

- StagingのPipelineに環境変数を追加

## レビューポイント

## UIの変更
- Before/Afterのスクショなど
- スクショ置き場

## 動作確認状況

## 補足
- 相談、参考資料などがあれば
2023-12-18 00:58:50 +00:00
masaaki
342baa9826 Merged PR 610: AzureFucntionのpipelineが参照しているDockerFileを修正する
## 概要
[Task3274: AzureFucntionのpipelineが参照しているDockerFileを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3274)

- staging用のpipelineに対して、functionのビルド時に参照するdockerFileをappserviceと同様の階層にあるものに修正しました

## レビューポイント
- 特にありません

## UIの変更
- 無し

## 動作確認状況
- 未確認。stagingのpipeline動作時に確認します。

## 補足
- 相談、参考資料などがあれば
2023-12-07 06:09:48 +00:00
masaaki
3dd3aeb274 Merged PR 598: ライセンスアラート関連pipelineの最適化
## 概要
[Task2992: ライセンスアラート関連pipelineの最適化](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2992)

- staging用のpipelineに対してAzureFunction用のjobを追加しました。
  - build用のjobとdeploy用のjobの二つです
- このPull Requestでの対象/対象外
  - 本番環境用のpipelineについては、Azureリソース作成後に実施する必要があるため、
    「タスク 2870: [ライセンスアラート]FunctionAPPのprod環境適用(pipeline含む)」にて実施します。

## レビューポイント
- Appserviceのビルド(backend_build)と比較して、名前の重複やpush先の競合はないか
- jobの追加箇所は適切か

## UIの変更
- 特になし

## 動作確認状況
- 未実施
  マージ後、宣言したのち動作確認を行う予定です。

## 補足
- Functionのdeployで使用したtaskは以下になります。
https://learn.microsoft.com/ja-jp/azure/devops/pipelines/tasks/reference/azure-function-app-container-v1?view=azure-pipelines
2023-12-01 08:04:31 +00:00
湯本 開
0da1aeab81 Merged PR 555: Stagingパイプラインを作成する(デプロイ)/修正
## 概要
[Task2843: Stagingパイプラインを作成する(デプロイ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2843)

- Staging環境Pipelineで部分的に間違ってprod指定したいた箇所を修正

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-11-06 08:49:18 +00:00
湯本 開
f4e2d47bdd Merged PR 553: Stagingパイプラインを作成する(デプロイ)
## 概要
[Task2843: Stagingパイプラインを作成する(デプロイ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2843)

- StagingビルドだけしていたPipelineにデプロイ処理を追加
- adminによるmigrationが反映されていなかったので反映

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-11-06 08:44:24 +00:00
makabe.t
976271ab92 Merged PR 543: デプロイパイプラインyamlを修正&リポジトリの修正
## 概要
[Task2995: デプロイパイプラインyamlを修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2995)

- STGデプロイパイプラインの定義yamlについて以下の環境変数に0から具体的な値を設定しました。
 - REFRESH_TOKEN_LIFETIME_WEB: 86400000
 -  REFRESH_TOKEN_LIFETIME_DEFAULT: 2592000000
 -  ACCESS_TOKEN_LIFETIME_WEB: 7200000
- ユーザーリポジトリの`findSameAccountUsers`についてentityManagerを使っていない箇所を使うように修正しました。

## レビューポイント
- 共有

## UIの変更
- なし

## 動作確認状況
- ローカルで確認
2023-10-31 06:52:29 +00:00
湯本 開
83add51148 Merged PR 538: Azure AD B2Cの結果をCacheManagerにキャッシュするよう修正
## 概要
[Task2967: Azure AD B2Cの結果をCacheManagerにキャッシュするよう修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2967)

- キャッシュを扱うRedisServiceを追加
- AdB2cServiceでRedisServiceを使って結果をキャッシュする実装を追加
- ADB2Cの呼び出しと、キャッシュからの取得が行われた時にログを出す実装を追加
  - Azure Monitorで呼び出しコストでアラート出したくなった時のための予防的追加
- 開発環境でローカルのredisを操作する用途のredis-cliをインストールする設定を追加&スクリプトを追加
- `getUser` と `getUsers` の返り値の方を統一 & 使用されなくなった方の型を削除
- AdB2Cの`ttl` に設定する用の値を環境変数に追加
  - 今後実装予定のトークンのキャッシュとはTTLを別にしたかったため
- 複数ユーザー削除処理内でのindex処理が不適切と思われる箇所があったので修正

## レビューポイント
- **Redisへのget/set/delが失敗した際に、エラーログだけ出して成功 or 取得対象なしと同様の動作をするように作成したが、問題なさそうか**
    - これは速度向上用のキャッシュが死んでいても業務は動くべきではないか、という考えによるもの
    - 通信できない=障害中であると想定されるので、失敗しても良いような気もするので相談
- **AdB2cService内でキャッシュを扱う箇所のコードの可読性に問題はないか**
    - 更にWrapしてキャッシュの具体的な動きを隠蔽することも考えたが、詳細なエラーの制御をしづらくなりそうだったので具体的な引数の変換等以上のことはしない形で実装
    - AdB2cServiceが十分に末端の処理なので詳細な処理を生で書いていても認知負荷はそう変わらない可能性がある
- **キャッシュする値の性質によってTTLを変えられる仕組みを前提に設計・実装したが、懸念点はないか**
- **TTLに設定する値は妥当そうか**
- **`Aadb2cUser` を削除したが問題ないか**
- **`deleteUsers` 内のログ処理の変更は適切か**
    - to 岩田さん

## 動作確認状況
- ローカルで確認
- npm run testが通過することを確認
2023-10-31 03:45:31 +00:00
湯本 開
2a867f2a71 Merged PR 533: STGビルドの環境変数が間違ったファイルを読まないよう修正する
## 概要
[Task2956: STGビルドの環境変数が間違ったファイルを読まないよう修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2956)

- .envを上書きする方法から、VITEが本来想定しているビルド指定方法へ修正
- STGパイプラインでも `npm run build:stg` を使用するよう修正

## レビューポイント
- 修正方針に問題はないか

## 動作確認状況
- ローカルで動作する所まで確認
2023-10-26 08:20:32 +00:00
湯本 開
8474c6a4f5 Merged PR 529: Pipelineの仕組みを修正する
## 概要
[Task2949: Pipelineの仕組みを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2949)

- .env.(環境名) の環境変数を用いてフロント側ビルドを行うよう修正
- ビルドパイプラインでstaging/production用の両方のフロント側ビルドを行うよう変更

## レビューポイント
- 仕組み上の不明点はないか
- 情報共有

## 動作確認状況
- 本番環境へデプロイされ、本当の最低限だけ動作することを確認
2023-10-26 04:37:58 +00:00
湯本 開
fe3910cbe1 Merged PR 509: Pipelineの環境変数追従2
## 概要
[Task2896: Pipelineの環境変数追従2](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2896)

- 環境変数を追加

## レビューポイント
- 情報共有

## 動作確認状況
- なし
2023-10-19 07:35:30 +00:00
湯本 開
c46d2bad61 Merged PR 505: Production/Stagingパイプラインの環境変数を更新する
## 概要
[Task2858: Production/Stagingパイプラインの環境変数を更新する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2858)

- テスト用の環境変数を追加

## レビューポイント
- 情報共有

## 動作確認状況
- 未実施
2023-10-18 04:27:49 +00:00
湯本 開
ba802dec40 Merged PR 491: Stagingパイプラインを作成する(ビルドのみ)
## 概要
[Task2842: Stagingパイプラインを作成する(ビルドのみ)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2842)

- Stagingパイプラインで稼働させる用のpipeline.ymlを実装
- STGビルドのみを行い、ビルド結果を前提とする本番環境デプロイが通常ルートで出来るようにすることが目的
- 現在のSTG環境には一切触らない想定

## レビューポイント
- 今稼働している環境へ影響するような処理がコメントアウトされて動かないようになっているか?
  - STG環境のWebApps/StaticWebApps/DBに影響ある操作をしていなさそうか

## 動作確認状況
- 未確認
2023-10-12 08:23:13 +00:00
湯本 開
60269306c5 Merged PR 285: Staging用デプロイパイプラインを作成する
## 概要
[Task2198: Staging用デプロイパイプラインを作成する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2198)

- Stating/Production用のデプロイパイプラインの構成ファイルを作成

## レビュー対象外
- depoyment slotを使ったデプロイには未対応(別PBIで対応予定)

## レビューポイント
- ざっくり実施される処理とその順序として問題はなさそうか
- 情報共有

## 動作確認状況
- Dockerイメージがビルド&プッシュ、静的ファイルがビルド&Pipeline用Blobストレージにアップロードされる所までは確認済
- 書式はPipeline上画面で確認済
2023-09-03 12:05:18 +00:00
湯本 開
c42ba4d3db Merged PR 353: staging用pipelineのymlのトリガーを修正する
## 概要
[Task2488: staging用pipelineのymlのトリガーを修正する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2488)

- (まだ稼働していないStagingデプロイパイプラインの)トリガー部分のチェックロジックが権限不足で動作していなかった箇所を修正

## レビューポイント
- 情報共有

## 動作確認状況
- mainブランチ外のブランチがpipeline上で実行された時に失敗することを確認
2023-08-24 03:23:51 +00:00
湯本 開
080e05975e Merged PR 270: git tagを検出してビルドを行うPipelineを構築する
## 概要
[Task2196: git tagを検出してビルドを行うPipelineを構築する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2196)

- 特定のtagをmainブランチに打った時にPipelineが起動するPipeline用の構成YAMLを追加
  - タグをトリガーとするPipelineはYAML経由でないと作成できなかったため
- Staging/Production用のpipelineを追加
  - https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_build?definitionId=11
  - https://dev.azure.com/ODMSCloud/ODMS%20Cloud/_build?definitionId=13
  - yaml定義によるpipelineはビルド対象のブランチに存在するYAML構成を見てビルドを行う模様

## レビューポイント
- 対処として問題なさそうか
- Pipelineの動作(どこのYAMLを見て動くか等)は問題なく理解できる書き方になっているか

## 動作確認状況
- ビルド対象ブランチのazure-pipeline-xxx.yamlを参照してパイプラインが動作するため、実稼働のテストにはマージが前提になる関係上、feature/xxxブランチ上でのみ動作を確認。mainブランチ上で稼働するかは未動作確認。
2023-07-26 08:14:56 +00:00