-
Notifications
You must be signed in to change notification settings - Fork 6
개발 환경
Seonghwan Kim edited this page Oct 29, 2021
·
3 revisions
- FireBase Crashlytics
- 사용자의 크래쉬 정보를 수집
- 오류 통계 및 크래쉬 발생시 메일 알람
- App Distribution
- 테스터에게 앱 배포
- Build Scehdule
- 특정 시간 이나 pr이 일어날 때 빌드 후 FireBase App Distrubution으로 자동 배포
- 테스트를 통과한 경우에만 빌드를 진행하고 결과를 slack으로 알림
- (upstream) .gjt/hooks/pre-commit: upstream repository에서는 커밋을 할 수 없도록 제한
#!/bin/bash
echo "You'ar in upstream repository"
exit 1
- (origin) .git/hooks/pre-commit: origin repository에서는 커밋 시 브랜치 명을 확인하여 main 또는 develop 브랜치에서 실수로 커밋하지 못하도록 제한
#!/bin/bash
CMD="$(git rev-parse --abbrev-ref HEAD)"
local_branch="$CMD"
if [ $local_branch == "main" ]
then
echo "You're in main branch."
exit 1
fi
if [ $local_branch == "develop" ]
then
echo "You're in develop branch."
exit 1
fi
exit 0
- (origin) .git/hooks/pre-push: push 전 로컬에서 빌드와 테스트를 수행하여 문제가 없는 태스크만 올라가도록 진행
#!/bin/bash
echo "pre-push"
CMD="./gradlew :app:assembleDebug :app:assembleDebugUnitTest :app:testDebugUnitTest"
$CMD
RESULT=$?
if [ $RESULT -ne 0 ]; then
echo "push failed $CMD"
exit 1
fi
exit 0
로컬에서 빌드와 테스트를 하면 작업이 지연될 수 있다. 커밋마다 빌드, 테스트를 수행하면 너무 지연될 수 있으니 푸시마다 검사하도록 설정하였는데 약간의 불편함은 감수해야 함.
로컬에서 하는 테스트다 보니 팀원 각각의 환경마다 차이가 발생할 수 있다(ex: 저는 되는데요?). 서버 사이드 검사가 필요하기 때문에 Bitrize를 도입하였는데 크레딧 제한이 있기 때문에 검토가 필요하다.