.drone.yml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. kind: pipeline
  2. name: generic
  3. steps:
  4. - name: generic
  5. image: nextcloudci/android:android-49
  6. environment:
  7. GIT_USERNAME:
  8. from_secret: GIT_USERNAME
  9. GIT_TOKEN:
  10. from_secret: GIT_TOKEN
  11. commands:
  12. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  13. - ./gradlew assembleGeneric
  14. - name: notify
  15. image: drillster/drone-email
  16. settings:
  17. port: 587
  18. from: nextcloud-drone@kaminsky.me
  19. recipients_only: true
  20. username:
  21. from_secret: EMAIL_USERNAME
  22. password:
  23. from_secret: EMAIL_PASSWORD
  24. recipients:
  25. from_secret: EMAIL_RECIPIENTS
  26. host:
  27. from_secret: EMAIL_HOST
  28. GIT_USERNAME:
  29. from_secret: GIT_USERNAME
  30. GIT_TOKEN:
  31. from_secret: GIT_TOKEN
  32. when:
  33. event:
  34. - push
  35. status:
  36. - failure
  37. branch:
  38. - master
  39. trigger:
  40. branch:
  41. - master
  42. event:
  43. - pull_request
  44. - push
  45. ---
  46. kind: pipeline
  47. name: gplay
  48. steps:
  49. - name: gplay
  50. image: nextcloudci/android:android-49
  51. privileged: true
  52. environment:
  53. LOG_USERNAME:
  54. from_secret: LOG_USERNAME
  55. LOG_PASSWORD:
  56. from_secret: LOG_PASSWORD
  57. GIT_USERNAME:
  58. from_secret: GIT_USERNAME
  59. GIT_TOKEN:
  60. from_secret: GIT_TOKEN
  61. ORG_GRADLE_PROJECT_coverage: ''
  62. commands:
  63. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  64. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  65. - ./gradlew assembleGplay
  66. - ./gradlew assembleGplayDebug
  67. - scripts/wait_for_emulator.sh
  68. - ./gradlew jacocoTestGplayDebugUnitTestReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  69. - ./gradlew installGplayDebugAndroidTest
  70. - ./gradlew createGplayDebugCoverageReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  71. - ./gradlew executeScreenshotTests || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  72. - ./gradlew combinedTestReport
  73. - curl -o codecov.sh https://codecov.io/bash
  74. - bash ./codecov.sh -t fc506ba4-33c3-43e4-a760-aada38c24fd5
  75. - name: notify
  76. image: drillster/drone-email
  77. settings:
  78. port: 587
  79. from: nextcloud-drone@kaminsky.me
  80. recipients_only: true
  81. username:
  82. from_secret: EMAIL_USERNAME
  83. password:
  84. from_secret: EMAIL_PASSWORD
  85. recipients:
  86. from_secret: EMAIL_RECIPIENTS
  87. host:
  88. from_secret: EMAIL_HOST
  89. when:
  90. event:
  91. - push
  92. status:
  93. - failure
  94. branch:
  95. - master
  96. services:
  97. - name: server
  98. image: nextcloudci/server:server-3
  99. trigger:
  100. branch:
  101. - master
  102. event:
  103. - push
  104. - pull_request
  105. ---
  106. kind: pipeline
  107. name: analysis
  108. steps:
  109. - name: analysis
  110. image: nextcloudci/android:android-49
  111. environment:
  112. GIT_USERNAME:
  113. from_secret: GIT_USERNAME
  114. GIT_TOKEN:
  115. from_secret: GIT_TOKEN
  116. LOG_USERNAME:
  117. from_secret: LOG_USERNAME
  118. LOG_PASSWORD:
  119. from_secret: LOG_PASSWORD
  120. commands:
  121. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  122. - export BRANCH=$(scripts/analysis/getBranchName.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST)
  123. - scripts/analysis/analysis-wrapper.sh $GIT_USERNAME $GIT_TOKEN $BRANCH $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST
  124. - name: notify
  125. image: drillster/drone-email
  126. settings:
  127. port: 587
  128. from: nextcloud-drone@kaminsky.me
  129. recipients_only: true
  130. username:
  131. from_secret: EMAIL_USERNAME
  132. password:
  133. from_secret: EMAIL_PASSWORD
  134. recipients:
  135. from_secret: EMAIL_RECIPIENTS
  136. host:
  137. from_secret: EMAIL_HOST
  138. when:
  139. event:
  140. - push
  141. status:
  142. - failure
  143. branch:
  144. - master
  145. trigger:
  146. branch:
  147. - master
  148. event:
  149. - push
  150. - pull_request
  151. ---
  152. kind: pipeline
  153. name: qa
  154. steps:
  155. - name: qa
  156. image: nextcloudci/android:android-49
  157. privileged: true
  158. environment:
  159. LOG_USERNAME:
  160. from_secret: LOG_USERNAME
  161. LOG_PASSWORD:
  162. from_secret: LOG_PASSWORD
  163. GIT_USERNAME:
  164. from_secret: GIT_USERNAME
  165. GIT_TOKEN:
  166. from_secret: GIT_TOKEN
  167. KS_PASS:
  168. from_secret: KS_PASS
  169. KEY_PASS:
  170. from_secret: KEY_PASS
  171. commands:
  172. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  173. - sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
  174. - sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
  175. - ./gradlew assembleQaDebug
  176. - /opt/android-sdk-linux/build-tools/*/apksigner sign --ks-pass pass:$KS_PASS --key-pass pass:$KEY_PASS --ks-key-alias key0 --ks scripts/QA_keystore.jks build/outputs/apk/qa/debug/qa-debug-*.apk
  177. - scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  178. trigger:
  179. event:
  180. - pull_request