shintaroasuzuki-restapi-lambda-template

目次

環境構築

yarn install

ディレクトリ設計

.
├── flyway
│   └── migration/
├── openapi/
│   └── components/
│       └── schemas
├── src
└── terraform/
    ├── common
    └── envs/
        ├── dev
        ├── stg
        └── prd

マイグレーション

Flywayを利用します。

brew install flyway

V{major_version}_{minor_version}_{patch_version}__foo.sql という命名規則で、flyway/migration/ 配下にマイグレーションファイルを作成してください。

単体テスト

単体テスト時の DB の接続先は、ローカルで立ち上げた MySQL イメージを使ったコンテナを指定しています。

ローカルで MySQL の起動

ルートディレクトリで下記のコマンドを実行して、コンテナを起動します。

docker compose up -d

マイグレーションの実行

flyway migrate

カバレッジが 100%になるように単体テストを記述します。

CI/CD

ブランチ戦略は GitLab-flow を採用しています。

main, staging, production という 3 つのブランチを立てています。

  1. ローカルでのコミット
  • formatter
  • linter
  1. Pull Request の作成
  • 単体テスト
  • PR のコメントにカバレッジレポートを作成
  • terraform plan
  1. Pull Request のマージ
  • terraform apply