.drone.yml 4.9 KB

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