.drone.yml 13 KB

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