feat: complete leave approval MVP
This commit is contained in:
Executable
+63
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
java_home_default='/usr/local/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home'
|
||||
|
||||
if [[ -z "${JAVA_HOME:-}" && -d "${java_home_default}" ]]; then
|
||||
export JAVA_HOME="${java_home_default}"
|
||||
fi
|
||||
|
||||
if [[ -z "${JAVA_HOME:-}" ]]; then
|
||||
echo 'JDK 21 is required. Set JAVA_HOME before running verification.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '[1/5] Backend tests'
|
||||
(
|
||||
cd "${root_dir}/backend"
|
||||
./gradlew --no-daemon test
|
||||
)
|
||||
|
||||
echo '[2/5] AI service tests'
|
||||
(
|
||||
cd "${root_dir}/ai-service"
|
||||
if [[ -x .venv/bin/python ]]; then
|
||||
.venv/bin/python -m compileall -q app tests
|
||||
.venv/bin/python -m pytest
|
||||
else
|
||||
python3 -m compileall -q app tests
|
||||
python3 -m pytest
|
||||
fi
|
||||
)
|
||||
|
||||
echo '[3/5] Flutter formatting, analysis and tests'
|
||||
(
|
||||
cd "${root_dir}/mobile"
|
||||
dart format --output=none --set-exit-if-changed lib test
|
||||
flutter analyze
|
||||
flutter test
|
||||
)
|
||||
|
||||
echo '[4/5] Contract and whitespace checks'
|
||||
(
|
||||
cd "${root_dir}"
|
||||
ruby -e "require 'yaml'; YAML.load_file('contracts/openapi/aioa-v1.yaml')"
|
||||
git diff --check
|
||||
)
|
||||
|
||||
echo '[5/5] Optional platform builds'
|
||||
if [[ "${AIOA_FULL_BUILD:-0}" == '1' ]]; then
|
||||
(
|
||||
cd "${root_dir}/mobile"
|
||||
flutter build apk --debug
|
||||
if [[ "$(uname -s)" == 'Darwin' ]]; then
|
||||
flutter build ios --simulator --no-codesign
|
||||
fi
|
||||
)
|
||||
else
|
||||
echo 'Skipped. Set AIOA_FULL_BUILD=1 to build Android and iOS simulator artifacts.'
|
||||
fi
|
||||
|
||||
echo 'AIOA verification completed successfully.'
|
||||
Reference in New Issue
Block a user