.drone.yml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. ---
  2. kind: pipeline
  3. type: docker
  4. name: tests-stable
  5. steps:
  6. - name: gplay
  7. image: nextcloudci/android:android-49
  8. privileged: true
  9. environment:
  10. LOG_USERNAME:
  11. from_secret: LOG_USERNAME
  12. LOG_PASSWORD:
  13. from_secret: LOG_PASSWORD
  14. GIT_USERNAME:
  15. from_secret: GIT_USERNAME
  16. GIT_TOKEN:
  17. from_secret: GIT_TOKEN
  18. ORG_GRADLE_PROJECT_coverage: ''
  19. commands:
  20. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  21. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  22. - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  23. - sed -i s"#server#server#" gradle.properties
  24. - sed -i s"#1#5#" ./src/androidTest/java/com/nextcloud/client/RetryTestRule.kt
  25. - ./gradlew assembleGplay
  26. - ./gradlew assembleGplayDebug
  27. - scripts/wait_for_emulator.sh
  28. - ./gradlew jacocoTestGplayDebugUnitTestReport && scripts/deleteOutdatedComments.sh "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  29. - ./gradlew installGplayDebugAndroidTest
  30. - scripts/wait_for_server.sh "server"
  31. - ./gradlew createGplayDebugCoverageReport -Pandroid.testInstrumentationRunnerArguments.notAnnotation=com.owncloud.android.utils.ScreenshotTest && scripts/deleteOutdatedComments.sh "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  32. - ./gradlew combinedTestReport
  33. - name: notify
  34. image: drillster/drone-email
  35. settings:
  36. port: 587
  37. from: nextcloud-drone@kaminsky.me
  38. recipients_only: true
  39. username:
  40. from_secret: EMAIL_USERNAME
  41. password:
  42. from_secret: EMAIL_PASSWORD
  43. recipients:
  44. from_secret: EMAIL_RECIPIENTS
  45. host:
  46. from_secret: EMAIL_HOST
  47. when:
  48. event:
  49. - push
  50. status:
  51. - failure
  52. branch:
  53. - master
  54. services:
  55. - name: server
  56. image: nextcloudci/server:server-17 # also change in updateScreenshots.sh
  57. commands:
  58. - BRANCH='stable18' /usr/local/bin/initnc.sh
  59. - echo 127.0.0.1 server >> /etc/hosts
  60. - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
  61. - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
  62. - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
  63. - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
  64. - su www-data -c "php /var/www/html/occ group:add users"
  65. - su www-data -c "php /var/www/html/occ group:adduser users user1"
  66. - su www-data -c "php /var/www/html/occ group:adduser users user2"
  67. - su www-data -c "git clone -b stable18 https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
  68. - su www-data -c "php /var/www/html/occ app:enable activity"
  69. - su www-data -c "git clone -b stable18 https://github.com/nextcloud/text.git /var/www/html/apps/text/"
  70. - su www-data -c "php /var/www/html/occ app:enable text"
  71. - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
  72. - /usr/local/bin/run.sh
  73. trigger:
  74. branch:
  75. - master
  76. event:
  77. - push
  78. - pull_request
  79. ---
  80. kind: pipeline
  81. type: docker
  82. name: tests-master
  83. steps:
  84. - name: gplay
  85. image: nextcloudci/android:android-49
  86. privileged: true
  87. environment:
  88. LOG_USERNAME:
  89. from_secret: LOG_USERNAME
  90. LOG_PASSWORD:
  91. from_secret: LOG_PASSWORD
  92. GIT_USERNAME:
  93. from_secret: GIT_USERNAME
  94. GIT_TOKEN:
  95. from_secret: GIT_TOKEN
  96. ORG_GRADLE_PROJECT_coverage: ''
  97. commands:
  98. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  99. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  100. - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  101. - sed -i s"#1#5#" ./src/androidTest/java/com/nextcloud/client/RetryTestRule.kt
  102. - ./gradlew assembleGplay
  103. - ./gradlew assembleGplayDebug
  104. - scripts/wait_for_emulator.sh
  105. - ./gradlew jacocoTestGplayDebugUnitTestReport && scripts/deleteOutdatedComments.sh "master" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "master" "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  106. - ./gradlew installGplayDebugAndroidTest
  107. - scripts/wait_for_server.sh "server"
  108. - ./gradlew createGplayDebugCoverageReport -Pandroid.testInstrumentationRunnerArguments.notAnnotation=com.owncloud.android.utils.ScreenshotTest && scripts/deleteOutdatedComments.sh "master" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "master" "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  109. - ./gradlew combinedTestReport
  110. - curl -o codecov.sh https://codecov.io/bash
  111. - bash ./codecov.sh -t fc506ba4-33c3-43e4-a760-aada38c24fd5
  112. - name: notify
  113. image: drillster/drone-email
  114. settings:
  115. port: 587
  116. from: nextcloud-drone@kaminsky.me
  117. recipients_only: true
  118. username:
  119. from_secret: EMAIL_USERNAME
  120. password:
  121. from_secret: EMAIL_PASSWORD
  122. recipients:
  123. from_secret: EMAIL_RECIPIENTS
  124. host:
  125. from_secret: EMAIL_HOST
  126. when:
  127. event:
  128. - push
  129. status:
  130. - failure
  131. branch:
  132. - master
  133. services:
  134. - name: server
  135. image: nextcloudci/server:server-17 # also change in updateScreenshots.sh
  136. commands:
  137. - /usr/local/bin/initnc.sh
  138. - echo 127.0.0.1 server >> /etc/hosts
  139. - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
  140. - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
  141. - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
  142. - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
  143. - su www-data -c "php /var/www/html/occ group:add users"
  144. - su www-data -c "php /var/www/html/occ group:adduser users user1"
  145. - su www-data -c "php /var/www/html/occ group:adduser users user2"
  146. - su www-data -c "git clone -b master https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
  147. - su www-data -c "php /var/www/html/occ app:enable activity"
  148. - su www-data -c "git clone -b master https://github.com/nextcloud/text.git /var/www/html/apps/text/"
  149. - su www-data -c "php /var/www/html/occ app:enable text"
  150. - su www-data -c "git clone -b master https://github.com/nextcloud/end_to_end_encryption/ /var/www/html/apps/end_to_end_encryption/"
  151. - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
  152. - /usr/local/bin/run.sh
  153. trigger:
  154. branch:
  155. - master
  156. event:
  157. - push
  158. - pull_request
  159. ---
  160. kind: pipeline
  161. type: docker
  162. name: screenshots-stable
  163. steps:
  164. - name: gplay
  165. image: nextcloudci/android:android-49
  166. privileged: true
  167. environment:
  168. LOG_USERNAME:
  169. from_secret: LOG_USERNAME
  170. LOG_PASSWORD:
  171. from_secret: LOG_PASSWORD
  172. GIT_USERNAME:
  173. from_secret: GIT_USERNAME
  174. GIT_TOKEN:
  175. from_secret: GIT_TOKEN
  176. ORG_GRADLE_PROJECT_coverage: ''
  177. commands:
  178. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  179. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  180. - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  181. - ./gradlew assembleGplayDebug
  182. - scripts/wait_for_emulator.sh
  183. - ./gradlew installGplayDebugAndroidTest
  184. - ./gradlew gplayDebugExecuteScreenshotTests -Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest && scripts/deleteOutdatedComments.sh "stable" "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  185. - name: notify
  186. image: drillster/drone-email
  187. settings:
  188. port: 587
  189. from: nextcloud-drone@kaminsky.me
  190. recipients_only: true
  191. username:
  192. from_secret: EMAIL_USERNAME
  193. password:
  194. from_secret: EMAIL_PASSWORD
  195. recipients:
  196. from_secret: EMAIL_RECIPIENTS
  197. host:
  198. from_secret: EMAIL_HOST
  199. when:
  200. event:
  201. - push
  202. status:
  203. - failure
  204. branch:
  205. - master
  206. trigger:
  207. branch:
  208. - master
  209. event:
  210. - push
  211. - pull_request
  212. ---
  213. kind: pipeline
  214. type: docker
  215. name: screenshots-master
  216. steps:
  217. - name: gplay
  218. image: nextcloudci/android:android-49
  219. privileged: true
  220. environment:
  221. LOG_USERNAME:
  222. from_secret: LOG_USERNAME
  223. LOG_PASSWORD:
  224. from_secret: LOG_PASSWORD
  225. GIT_USERNAME:
  226. from_secret: GIT_USERNAME
  227. GIT_TOKEN:
  228. from_secret: GIT_TOKEN
  229. ORG_GRADLE_PROJECT_coverage: ''
  230. commands:
  231. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  232. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  233. - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  234. - ./gradlew assembleGplayDebug
  235. - scripts/wait_for_emulator.sh
  236. - ./gradlew installGplayDebugAndroidTest
  237. - sed -i s"#5#1#" ./src/androidTest/java/com/nextcloud/client/RetryTestRule.kt
  238. - ./gradlew gplayDebugExecuteScreenshotTests -Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest && scripts/deleteOutdatedComments.sh "master" "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "master" "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  239. - name: notify
  240. image: drillster/drone-email
  241. settings:
  242. port: 587
  243. from: nextcloud-drone@kaminsky.me
  244. recipients_only: true
  245. username:
  246. from_secret: EMAIL_USERNAME
  247. password:
  248. from_secret: EMAIL_PASSWORD
  249. recipients:
  250. from_secret: EMAIL_RECIPIENTS
  251. host:
  252. from_secret: EMAIL_HOST
  253. when:
  254. event:
  255. - push
  256. status:
  257. - failure
  258. branch:
  259. - master
  260. trigger:
  261. branch:
  262. - master
  263. event:
  264. - push
  265. - pull_request
  266. ---
  267. kind: pipeline
  268. type: docker
  269. name: analysis
  270. steps:
  271. - name: analysis
  272. image: nextcloudci/android:android-49
  273. environment:
  274. GIT_USERNAME:
  275. from_secret: GIT_USERNAME
  276. GIT_TOKEN:
  277. from_secret: GIT_TOKEN
  278. LOG_USERNAME:
  279. from_secret: LOG_USERNAME
  280. LOG_PASSWORD:
  281. from_secret: LOG_PASSWORD
  282. commands:
  283. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  284. - export BRANCH=$(scripts/analysis/getBranchName.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST)
  285. - scripts/analysis/analysis-wrapper.sh $GIT_USERNAME $GIT_TOKEN $BRANCH $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST
  286. - name: notify
  287. image: drillster/drone-email
  288. settings:
  289. port: 587
  290. from: nextcloud-drone@kaminsky.me
  291. recipients_only: true
  292. username:
  293. from_secret: EMAIL_USERNAME
  294. password:
  295. from_secret: EMAIL_PASSWORD
  296. recipients:
  297. from_secret: EMAIL_RECIPIENTS
  298. host:
  299. from_secret: EMAIL_HOST
  300. when:
  301. event:
  302. - push
  303. status:
  304. - failure
  305. branch:
  306. - master
  307. trigger:
  308. branch:
  309. - master
  310. event:
  311. - push
  312. - pull_request
  313. ---
  314. kind: pipeline
  315. type: docker
  316. name: qa
  317. steps:
  318. - name: qa
  319. image: nextcloudci/android:android-49
  320. privileged: true
  321. environment:
  322. LOG_USERNAME:
  323. from_secret: LOG_USERNAME
  324. LOG_PASSWORD:
  325. from_secret: LOG_PASSWORD
  326. GIT_USERNAME:
  327. from_secret: GIT_USERNAME
  328. GIT_TOKEN:
  329. from_secret: GIT_TOKEN
  330. KS_PASS:
  331. from_secret: KS_PASS
  332. KEY_PASS:
  333. from_secret: KEY_PASS
  334. commands:
  335. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  336. - sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
  337. - sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
  338. - ./gradlew assembleQaDebug
  339. - $(find /opt/android-sdk-linux/build-tools/*/apksigner | sort | tail -n1) 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
  340. - scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  341. trigger:
  342. event:
  343. - pull_request