.drone.yml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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-17 # also change in updateScreenshots.sh
  99. commands:
  100. - /usr/local/bin/initnc.sh
  101. - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
  102. - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
  103. - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
  104. - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
  105. - su www-data -c "php /var/www/html/occ group:add users"
  106. - su www-data -c "php /var/www/html/occ group:adduser users user1"
  107. - su www-data -c "php /var/www/html/occ group:adduser users user2"
  108. - su www-data -c "git clone -b master https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
  109. - su www-data -c "php /var/www/html/occ app:enable activity"
  110. - su www-data -c "git clone -b master https://github.com/nextcloud/text.git /var/www/html/apps/text/"
  111. - su www-data -c "php /var/www/html/occ app:enable text"
  112. - /usr/local/bin/run.sh
  113. trigger:
  114. branch:
  115. - master
  116. event:
  117. - push
  118. - pull_request
  119. ---
  120. kind: pipeline
  121. name: analysis
  122. steps:
  123. - name: analysis
  124. image: nextcloudci/android:android-49
  125. environment:
  126. GIT_USERNAME:
  127. from_secret: GIT_USERNAME
  128. GIT_TOKEN:
  129. from_secret: GIT_TOKEN
  130. LOG_USERNAME:
  131. from_secret: LOG_USERNAME
  132. LOG_PASSWORD:
  133. from_secret: LOG_PASSWORD
  134. commands:
  135. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  136. - export BRANCH=$(scripts/analysis/getBranchName.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST)
  137. - scripts/analysis/analysis-wrapper.sh $GIT_USERNAME $GIT_TOKEN $BRANCH $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST
  138. - name: notify
  139. image: drillster/drone-email
  140. settings:
  141. port: 587
  142. from: nextcloud-drone@kaminsky.me
  143. recipients_only: true
  144. username:
  145. from_secret: EMAIL_USERNAME
  146. password:
  147. from_secret: EMAIL_PASSWORD
  148. recipients:
  149. from_secret: EMAIL_RECIPIENTS
  150. host:
  151. from_secret: EMAIL_HOST
  152. when:
  153. event:
  154. - push
  155. status:
  156. - failure
  157. branch:
  158. - master
  159. trigger:
  160. branch:
  161. - master
  162. event:
  163. - push
  164. - pull_request
  165. ---
  166. kind: pipeline
  167. name: qa
  168. steps:
  169. - name: qa
  170. image: nextcloudci/android:android-49
  171. privileged: true
  172. environment:
  173. LOG_USERNAME:
  174. from_secret: LOG_USERNAME
  175. LOG_PASSWORD:
  176. from_secret: LOG_PASSWORD
  177. GIT_USERNAME:
  178. from_secret: GIT_USERNAME
  179. GIT_TOKEN:
  180. from_secret: GIT_TOKEN
  181. KS_PASS:
  182. from_secret: KS_PASS
  183. KEY_PASS:
  184. from_secret: KEY_PASS
  185. commands:
  186. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  187. - sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
  188. - sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
  189. - ./gradlew assembleQaDebug
  190. - /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
  191. - scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  192. trigger:
  193. event:
  194. - pull_request