.drone.yml 7.2 KB

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