.drone.yml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. kind: pipeline
  2. type: docker
  3. name: generic
  4. steps:
  5. - name: generic
  6. image: nextcloudci/android:android-49
  7. environment:
  8. GIT_USERNAME:
  9. from_secret: GIT_USERNAME
  10. GIT_TOKEN:
  11. from_secret: GIT_TOKEN
  12. commands:
  13. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  14. - ./gradlew assembleGeneric
  15. - name: notify
  16. image: drillster/drone-email
  17. settings:
  18. port: 587
  19. from: nextcloud-drone@kaminsky.me
  20. recipients_only: true
  21. username:
  22. from_secret: EMAIL_USERNAME
  23. password:
  24. from_secret: EMAIL_PASSWORD
  25. recipients:
  26. from_secret: EMAIL_RECIPIENTS
  27. host:
  28. from_secret: EMAIL_HOST
  29. GIT_USERNAME:
  30. from_secret: GIT_USERNAME
  31. GIT_TOKEN:
  32. from_secret: GIT_TOKEN
  33. when:
  34. event:
  35. - push
  36. status:
  37. - failure
  38. branch:
  39. - master
  40. trigger:
  41. branch:
  42. - master
  43. event:
  44. - pull_request
  45. - push
  46. ---
  47. kind: pipeline
  48. type: docker
  49. name: gplay
  50. steps:
  51. - name: gplay
  52. image: nextcloudci/android:android-49
  53. privileged: true
  54. environment:
  55. LOG_USERNAME:
  56. from_secret: LOG_USERNAME
  57. LOG_PASSWORD:
  58. from_secret: LOG_PASSWORD
  59. GIT_USERNAME:
  60. from_secret: GIT_USERNAME
  61. GIT_TOKEN:
  62. from_secret: GIT_TOKEN
  63. ORG_GRADLE_PROJECT_coverage: ''
  64. commands:
  65. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  66. - emulator-headless -avd android-27 -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
  67. - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g src/main/res/values/setup.xml
  68. - ./gradlew assembleGplay
  69. - ./gradlew assembleGplayDebug
  70. - scripts/wait_for_emulator.sh
  71. - ./gradlew jacocoTestGplayDebugUnitTestReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "Unit" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  72. - ./gradlew installGplayDebugAndroidTest
  73. - ./gradlew createGplayDebugCoverageReport || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "IT" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  74. - ./gradlew executeScreenshotTests || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "Screenshot" $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  75. - ./gradlew combinedTestReport
  76. - curl -o codecov.sh https://codecov.io/bash
  77. - bash ./codecov.sh -t fc506ba4-33c3-43e4-a760-aada38c24fd5
  78. - name: notify
  79. image: drillster/drone-email
  80. settings:
  81. port: 587
  82. from: nextcloud-drone@kaminsky.me
  83. recipients_only: true
  84. username:
  85. from_secret: EMAIL_USERNAME
  86. password:
  87. from_secret: EMAIL_PASSWORD
  88. recipients:
  89. from_secret: EMAIL_RECIPIENTS
  90. host:
  91. from_secret: EMAIL_HOST
  92. when:
  93. event:
  94. - push
  95. status:
  96. - failure
  97. branch:
  98. - master
  99. services:
  100. - name: server
  101. image: nextcloudci/server:server-17 # also change in updateScreenshots.sh
  102. commands:
  103. - /usr/local/bin/initnc.sh
  104. - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
  105. - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
  106. - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
  107. - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
  108. - su www-data -c "php /var/www/html/occ group:add users"
  109. - su www-data -c "php /var/www/html/occ group:adduser users user1"
  110. - su www-data -c "php /var/www/html/occ group:adduser users user2"
  111. - su www-data -c "git clone -b master https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
  112. - su www-data -c "php /var/www/html/occ app:enable activity"
  113. - su www-data -c "git clone -b master https://github.com/nextcloud/text.git /var/www/html/apps/text/"
  114. - su www-data -c "php /var/www/html/occ app:enable text"
  115. - su www-data -c "git clone -b master https://github.com/nextcloud/circles.git /var/www/html/apps/circles/"
  116. - apt-get update; apt-get -y install composer
  117. - su www-data -c "cd /var/www/html/apps/circles; composer install"
  118. - su www-data -c "php /var/www/html/occ app:enable -f circles"
  119. - su www-data -c "php /var/www/html/occ config:app:set circles --value 1 allow_non_ssl_links"
  120. - su www-data -c "php /var/www/html/occ config:app:set circles --value 1 local_is_non_ssl"
  121. - su www-data -c "php /var/www/html/occ circles:manage:create test public publicCircle"
  122. - /usr/local/bin/run.sh
  123. trigger:
  124. branch:
  125. - master
  126. event:
  127. - push
  128. - pull_request
  129. ---
  130. kind: pipeline
  131. type: docker
  132. name: analysis
  133. steps:
  134. - name: analysis
  135. image: nextcloudci/android:android-49
  136. environment:
  137. GIT_USERNAME:
  138. from_secret: GIT_USERNAME
  139. GIT_TOKEN:
  140. from_secret: GIT_TOKEN
  141. LOG_USERNAME:
  142. from_secret: LOG_USERNAME
  143. LOG_PASSWORD:
  144. from_secret: LOG_PASSWORD
  145. commands:
  146. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  147. - export BRANCH=$(scripts/analysis/getBranchName.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST)
  148. - scripts/analysis/analysis-wrapper.sh $GIT_USERNAME $GIT_TOKEN $BRANCH $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST
  149. - name: notify
  150. image: drillster/drone-email
  151. settings:
  152. port: 587
  153. from: nextcloud-drone@kaminsky.me
  154. recipients_only: true
  155. username:
  156. from_secret: EMAIL_USERNAME
  157. password:
  158. from_secret: EMAIL_PASSWORD
  159. recipients:
  160. from_secret: EMAIL_RECIPIENTS
  161. host:
  162. from_secret: EMAIL_HOST
  163. when:
  164. event:
  165. - push
  166. status:
  167. - failure
  168. branch:
  169. - master
  170. trigger:
  171. branch:
  172. - master
  173. event:
  174. - push
  175. - pull_request
  176. ---
  177. kind: pipeline
  178. type: docker
  179. name: qa
  180. steps:
  181. - name: qa
  182. image: nextcloudci/android:android-49
  183. privileged: true
  184. environment:
  185. LOG_USERNAME:
  186. from_secret: LOG_USERNAME
  187. LOG_PASSWORD:
  188. from_secret: LOG_PASSWORD
  189. GIT_USERNAME:
  190. from_secret: GIT_USERNAME
  191. GIT_TOKEN:
  192. from_secret: GIT_TOKEN
  193. KS_PASS:
  194. from_secret: KS_PASS
  195. KEY_PASS:
  196. from_secret: KEY_PASS
  197. commands:
  198. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  199. - sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
  200. - sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
  201. - ./gradlew assembleQaDebug
  202. - /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
  203. - scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  204. trigger:
  205. event:
  206. - pull_request