Android 앱의 CI 모범 사례(안)

1545 단어 안드로이드
어쩐지 생각하고 있는 것입니다.
좀 더 생각이 분명해 오면 별도로 엔트리를 정리합니다.

기본적으로 지속적인 통합 입문 에 쓰여진 내용과 사고방식을 참고로 하고 있습니다. CI 흐름 책에도 쓰여진 대로 Android 앱의 경우에도 3종류의 빌드가 있으면 좋을까라고 생각합니다. 커밋 빌드 - 커밋 할 때마다 실행하고 몇 분 이내에 끝나는 빌드 2차 빌드 - 정기적으로(예: 1일 1회) 실행하고 시간이 오래 걸릴 수 있는 빌드 릴리스 빌드 - 릴리스 직전에 실행할 빌드 각각의 빌드로 실행하는 내용(의 안)에 대해서 써 갑니다. 커밋 빌드 컴파일이 통과할까 → ./gradlew assemble 등 코드 분석 Checkstyle PMD FindBugs Android Lint 테스트 + 커버리지 측정 (단시간에 실행하고 싶기 때문에 JavaVM에서 테스트한다) Robolectric JUnit Jacoco (또는 Cobertura 또는 Emma??) 다큐멘테이션 JavaDoc 클래스 다이어그램 생성(방법을 모르겠다...) 피드백 Slack, HipChat, 메일 등으로 빌드 결과를 적절하게 통지 (특히 빌드에 실패한 경우) DeployGate 등으로 빌드한 apk 배포 1일 1도 등 정기적으로 실시하는 빌드(2차 빌드) 커밋 빌드에 추가하여 다음을 수행합니다. 단위 테스트, 결합 테스트, UI 테스트(프로덕션 환경에 가까운 형태로 하고 싶기 때문에 단말 혹은 에뮬레이터상에서 테스트한다) monkey 모델 단위 테스트, 활동 단위 테스트, 서비스 단위 테스트... Espresso UI Automator 릴리스 용 빌드 (릴리스 빌드) 우선 2차 빌드를 동작시켜, 문제 없게 동작하면 다음을 실시합니다. (물론 CI와는 별도로 APK를 수동으로 확인해야한다고 생각합니다.) apk를 Developer Console에 업로드하여 출시 직전 상태로 전환 Google Play Developer API : Publishing API 이상입니다. 각각의 빌드로 디버그/릴리스의 어느 쪽의 서명을 사용할까입니다만, 빌드 대상으로 하고 있는 브랜치에 의해 바꾸는 것이 좋을 것 같은 생각이 듭니다. (릴리스에 사용하는 브랜치라면 릴리스 서명, 개발에 사용하고 있는 feature계의 브랜치라면 디버그 서명) 실제로 여러 가지 시도해 보려고 생각합니다. 노하우가 있다! 등 뭔가 코멘트 있으면 꼭 받고 싶습니다.

좋은 웹페이지 즐겨찾기