updateScreenshots.sh 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #!/usr/bin/env bash
  2. # SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
  3. # SPDX-FileCopyrightText: 2019-2020 Tobias Kaminsky <tobias@kaminsky.me>
  4. # SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
  5. if [[ $(grep NC_TEST_SERVER_BASEURL ~/.gradle/gradle.properties | grep -v "#" -c) -gt 0 ]]; then
  6. echo "This will not use server in docker. Please comment in .gradle/gradle.properties. Aborting!"
  7. exit 1
  8. fi
  9. ## emulator
  10. if [[ ! $(emulator -list-avds | grep uiComparison -c) -eq 0 ]]; then
  11. avdmanager delete avd -n uiComparison
  12. (sleep 5; echo "no") | avdmanager create avd -n uiComparison -c 100M -k "system-images;android-27;google_apis;x86" --abi "google_apis/x86"
  13. fi
  14. if [ "$1" == "debug" ]; then
  15. emulator -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 1>/dev/null &
  16. else
  17. emulator -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 1>/dev/null &
  18. fi
  19. PID=$!
  20. ## server
  21. docker run --name=uiComparison nextcloudci/server --entrypoint '/usr/local/bin/initnc.sh' 1>/dev/null &
  22. sleep 5
  23. IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' uiComparison)
  24. if [[ $IP = "" ]]; then
  25. echo "no server"
  26. exit 1
  27. fi
  28. ## wait for server to finish
  29. scripts/wait_for_server.sh "$IP"
  30. # setup test server
  31. docker exec uiComparison /bin/sh -c "echo $IP server >> /etc/hosts"
  32. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1\""
  33. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2\""
  34. docker exec uiComparison /bin/sh -c "su www-data -c \"OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3\""
  35. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ user:setting user2 files quota 1G\""
  36. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:add users\""
  37. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:adduser users user1\""
  38. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ group:adduser users user2\""
  39. docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/activity.git /var/www/html/apps/activity/\""
  40. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable activity\""
  41. docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/text.git /var/www/html/apps/text/\""
  42. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable text\""
  43. docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/end_to_end_encryption/ /var/www/html/apps/end_to_end_encryption/\""
  44. docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable end_to_end_encryption\""
  45. #docker exec uiComparison /bin/sh -c "su www-data -c \"git clone -b master https://github.com/nextcloud/circles.git /var/www/html/apps/circles/\""
  46. #docker exec uiComparison /bin/sh -c "apt-get update; apt-get -y install composer"
  47. #docker exec uiComparison /bin/sh -c "su www-data -c \"cd /var/www/html/apps/circles; composer install\""
  48. #docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ app:enable -f circles\""
  49. #docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ config:app:set circles --value 1 allow_non_ssl_links\""
  50. #docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ config:app:set circles --value 1 local_is_non_ssl\""
  51. #docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ config:system:set allow_local_remote_servers --value true --type bool\""
  52. #docker exec uiComparison /bin/sh -c "su www-data -c \"php /var/www/html/occ circles:manage:create test public publicCircle\""
  53. docker exec uiComparison /bin/sh -c "/usr/local/bin/run.sh"
  54. ## wait for server to finish
  55. scripts/wait_for_server.sh "$IP"
  56. scripts/wait_for_emulator.sh
  57. # change server to ip on emulator
  58. adb root
  59. sleep 2
  60. adb remount
  61. sleep 2
  62. adb shell "mount -o remount,rw /system"
  63. sleep 2
  64. adb shell "echo $IP server >> /system/etc/hosts"
  65. sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml
  66. ## update/create all screenshots
  67. #./gradlew gplayDebugExecuteScreenshotTests -Precord \
  68. #-Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest
  69. ## update screenshots in a class
  70. #./gradlew gplayDebugExecuteScreenshotTests \
  71. #-Precord \
  72. #-Pandroid.testInstrumentationRunnerArguments.class=\
  73. #com.owncloud.android.ui.dialog.SyncFileNotEnoughSpaceDialogFragmentTest
  74. ## update single screenshot within a class
  75. #./gradlew gplayDebugExecuteScreenshotTests \
  76. #-Precord \
  77. #-Pandroid.testInstrumentationRunnerArguments.class=\
  78. #com.nextcloud.client.FileDisplayActivityIT#showShares
  79. resultCode=-1
  80. retryCount=0
  81. until [ $resultCode -eq 0 ] || [ $retryCount -gt 2 ]
  82. do
  83. # test all screenshots
  84. ./gradlew gplayDebugExecuteScreenshotTests \
  85. -Pandroid.testInstrumentationRunnerArguments.annotation=com.owncloud.android.utils.ScreenshotTest
  86. resultCode=$?
  87. ((retryCount++))
  88. done
  89. sed -i s'#<bool name="is_beta">true</bool>#<bool name="is_beta">false</bool>#'g app/src/main/res/values/setup.xml
  90. if [ "$1" == "debug" ]; then
  91. exit
  92. fi
  93. # tidy up
  94. kill "$PID"
  95. docker stop uiComparison
  96. docker rm uiComparison