.drone.yml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  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 config:system:set allow_local_remote_servers --value true --type bool"
  122. - su www-data -c "php /var/www/html/occ circles:manage:create test public publicCircle"
  123. - su www-data -c "git clone -b master https://github.com/nextcloud/end_to_end_encryption/ /var/www/html/apps/end_to_end_encryption/"
  124. - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
  125. - /usr/local/bin/run.sh
  126. trigger:
  127. branch:
  128. - master
  129. event:
  130. - push
  131. - pull_request
  132. ---
  133. kind: pipeline
  134. type: docker
  135. name: analysis
  136. steps:
  137. - name: analysis
  138. image: nextcloudci/android:android-49
  139. environment:
  140. GIT_USERNAME:
  141. from_secret: GIT_USERNAME
  142. GIT_TOKEN:
  143. from_secret: GIT_TOKEN
  144. LOG_USERNAME:
  145. from_secret: LOG_USERNAME
  146. LOG_PASSWORD:
  147. from_secret: LOG_PASSWORD
  148. commands:
  149. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  150. - export BRANCH=$(scripts/analysis/getBranchName.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST)
  151. - scripts/analysis/analysis-wrapper.sh $GIT_USERNAME $GIT_TOKEN $BRANCH $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST
  152. - name: notify
  153. image: drillster/drone-email
  154. settings:
  155. port: 587
  156. from: nextcloud-drone@kaminsky.me
  157. recipients_only: true
  158. username:
  159. from_secret: EMAIL_USERNAME
  160. password:
  161. from_secret: EMAIL_PASSWORD
  162. recipients:
  163. from_secret: EMAIL_RECIPIENTS
  164. host:
  165. from_secret: EMAIL_HOST
  166. when:
  167. event:
  168. - push
  169. status:
  170. - failure
  171. branch:
  172. - master
  173. trigger:
  174. branch:
  175. - master
  176. event:
  177. - push
  178. - pull_request
  179. ---
  180. kind: pipeline
  181. type: docker
  182. name: qa
  183. steps:
  184. - name: qa
  185. image: nextcloudci/android:android-49
  186. privileged: true
  187. environment:
  188. LOG_USERNAME:
  189. from_secret: LOG_USERNAME
  190. LOG_PASSWORD:
  191. from_secret: LOG_PASSWORD
  192. GIT_USERNAME:
  193. from_secret: GIT_USERNAME
  194. GIT_TOKEN:
  195. from_secret: GIT_TOKEN
  196. KS_PASS:
  197. from_secret: KS_PASS
  198. KEY_PASS:
  199. from_secret: KEY_PASS
  200. commands:
  201. - scripts/checkIfRunDrone.sh $GIT_USERNAME $GIT_TOKEN $DRONE_PULL_REQUEST || exit 0
  202. - sed -i "/qa/,/\}/ s/versionCode .*/versionCode $DRONE_BUILD_NUMBER/" build.gradle
  203. - sed -i "/qa/,/\}/ s/versionName .*/versionName \"$DRONE_BUILD_NUMBER\"/" build.gradle
  204. - ./gradlew assembleQaDebug
  205. - /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
  206. - scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER $DRONE_PULL_REQUEST $GIT_USERNAME $GIT_TOKEN
  207. trigger:
  208. event:
  209. - pull_request