.drone.yml 16 KB

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