ブランチ間でリソースを共有する
場合によっては、すべてのブランチに対して新しいリソースをデプロイしたくないことがあります。例えば、すべての feature ブランチが dev ブランチによってデプロイされたバックエンドリソースをポイントして、シードデータ、ユーザー、グループを再利用することができます。
アプリケーションのビルド設定を更新して、ブランチ間でリソースを共有できます。Amplify コンソールから App overview ページに移動し、Hosting の下の Build settings を選択して、アプリケーションのビルド仕様 YAML ファイルを表示します。
backend フェーズのビルド設定を更新して npx ampx generate outputs --branch dev app-id $AWS_APP_ID を実行し、main または dev 以外のすべてのブランチの amplify_outputs.json ファイルを生成します。この更新後、新しくデプロイされたブランチはビルドの一部としてバックエンドリソースをデプロイしなくなり、代わりに dev ブランチからデプロイされたバックエンドリソースを使用します。
backend フェーズのビルド設定を更新して npx ampx generate outputs --branch dev app-id $AWS_APP_ID を実行し、main または dev 以外のすべてのブランチの amplify_outputs.json ファイルを生成します。この更新後、新しくデプロイされたブランチはビルドの一部としてバックエンドリソースをデプロイしなくなり、代わりに dev ブランチからデプロイされたバックエンドリソースを使用します。
version: 1backend: phases: build: commands: - 'npm ci --cache .npm --prefer-offline' - 'echo $AWS_BRANCH' - | case "${AWS_BRANCH}" in main) echo "Deploying main branch..." npx ampx pipeline-deploy --branch $AWS_BRANCH --app-id $AWS_APP_ID ;; dev) echo "Deploying dev branch..." npx ampx pipeline-deploy --branch $AWS_BRANCH --app-id $AWS_APP_ID ;; pr-*) echo "Deploying pull request branch..." npx ampx generate outputs --branch previews --app-id $AWS_APP_ID ;; *) echo "Deploying to staging branch..." npx ampx generate outputs --branch dev --app-id $AWS_APP_ID ;; esacfrontend: phases: build: commands: - 'npm run build' artifacts: baseDirectory: .next files: - '**/*' cache: paths: - .next/cache/**/* - .npm/**/* - node_modules/**/*