AWS Amplifyではビルド時に走らせるスクリプトを指定することができます。Flutter webをAmplify Hostingにデプロイするときのビルドスクリプトで少し詰まったので、ここに共有しておきます。
amplify.yml
version: 1
frontend:
phases:
preBuild:
commands:
- |
if [ ! -d _amplify_flutter_root ]; then
git clone https://github.com/flutter/flutter.git _amplify_flutter_root
else
echo "Flutter is already installed."
fi
_amplify_flutter_root/bin/flutter --version
_amplify_flutter_root/bin/flutter channel stable
_amplify_flutter_root/bin/flutter upgrade
_amplify_flutter_root/bin/flutter pub get
build:
commands:
- |
_amplify_flutter_root/bin/flutter build web
artifacts:
baseDirectory: build/web
files:
- '**/*'
cache:
paths:
- _amplify_flutter_root
前のキャッシュが残っている時にビルドが失敗するときがありましたが、一旦rm -rf _amplify_flutter_root
をしてキャッシュを消せばそれ以降は安定して動くようになりました。