---
kind: pipeline
type: docker
name: tests-stable

# SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later


steps:
  - name: gplay
    image: ghcr.io/nextcloud/continuous-integration-android8:3
    privileged: true
    environment:
      LOG_USERNAME:
        from_secret: LOG_USERNAME
      LOG_PASSWORD:
        from_secret: LOG_PASSWORD
      GIT_USERNAME:
        from_secret: GIT_USERNAME
      GITHUB_TOKEN:
        from_secret: GIT_TOKEN
    commands:
      - scripts/checkIfRunDrone.sh $DRONE_PULL_REQUEST || exit 0
      - emulator -avd android -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
      - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml
      - ./gradlew assembleGplayDebugAndroidTest
      - scripts/wait_for_emulator.sh
      - ./gradlew installGplayDebugAndroidTest
      - scripts/wait_for_server.sh "server"
      - scripts/deleteOldComments.sh "stable" "IT" $DRONE_PULL_REQUEST
      - ./gradlew createGplayDebugCoverageReport -Pcoverage -Pandroid.testInstrumentationRunnerArguments.notAnnotation=com.owncloud.android.utils.ScreenshotTest || scripts/uploadReport.sh $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER "stable" "IT" $DRONE_PULL_REQUEST

services:
  - name: server
    image: ghcr.io/nextcloud/continuous-integration-shallow-server:latest # also change in updateScreenshots.sh
    environment:
      EVAL: true
      SERVER_VERSION: 'stable27'
    commands:
      - BRANCH="$SERVER_VERSION" /usr/local/bin/initnc.sh
      - echo 127.0.0.1 server >> /etc/hosts
      - apt-get update && apt-get install -y composer
      - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
      - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
      - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
      - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
      - su www-data -c "php /var/www/html/occ group:add users"
      - su www-data -c "php /var/www/html/occ group:adduser users user1"
      - su www-data -c "php /var/www/html/occ group:adduser users user2"
      - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
      - su www-data -c "php /var/www/html/occ app:enable activity"
      - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/text.git /var/www/html/apps/text/"
      - su www-data -c "php /var/www/html/occ app:enable text"
      - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/end_to_end_encryption.git /var/www/html/apps/end_to_end_encryption/"
      - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
      - su www-data -c "git clone -b $SERVER_VERSION https://github.com/nextcloud/photos.git /var/www/html/apps/photos/"
      - su www-data -c "cd /var/www/html/apps/photos; composer install"
      - su www-data -c "php /var/www/html/occ app:enable -f photos"
      - /usr/local/bin/run.sh

trigger:
  branch:
    - master
    - stable-*
  event:
    - push
    - pull_request
---
kind: pipeline
type: docker
name: tests-master

steps:
  - name: gplay
    image: ghcr.io/nextcloud/continuous-integration-android8:3
    privileged: true
    environment:
      LOG_USERNAME:
        from_secret: LOG_USERNAME
      LOG_PASSWORD:
        from_secret: LOG_PASSWORD
      GIT_USERNAME:
        from_secret: GIT_USERNAME
      GITHUB_TOKEN:
        from_secret: GIT_TOKEN
    commands:
      - scripts/checkIfRunDrone.sh $DRONE_PULL_REQUEST || exit 0
      - emulator -avd android -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
      - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml
      - scripts/runCombinedTest.sh $DRONE_PULL_REQUEST $LOG_USERNAME $LOG_PASSWORD $DRONE_BUILD_NUMBER

services:
  - name: server
    image: ghcr.io/nextcloud/continuous-integration-shallow-server:latest # also change in updateScreenshots.sh
    environment:
      EVAL: true
    commands:
      - /usr/local/bin/initnc.sh
      - echo 127.0.0.1 server >> /etc/hosts
      - apt-get update && apt-get install -y composer
      - su www-data -c "OC_PASS=user1 php /var/www/html/occ user:add --password-from-env --display-name='User One' user1"
      - su www-data -c "OC_PASS=user2 php /var/www/html/occ user:add --password-from-env --display-name='User Two' user2"
      - su www-data -c "OC_PASS=user3 php /var/www/html/occ user:add --password-from-env --display-name='User Three' user3"
      - su www-data -c "php /var/www/html/occ user:setting user2 files quota 1G"
      - su www-data -c "php /var/www/html/occ group:add users"
      - su www-data -c "php /var/www/html/occ group:adduser users user1"
      - su www-data -c "php /var/www/html/occ group:adduser users user2"
      - su www-data -c "git clone -b master https://github.com/nextcloud/activity.git /var/www/html/apps/activity/"
      - su www-data -c "php /var/www/html/occ app:enable activity"
      - su www-data -c "git clone -b main https://github.com/nextcloud/text.git /var/www/html/apps/text/"
      - su www-data -c "php /var/www/html/occ app:enable text"
      - su www-data -c "git clone -b master https://github.com/nextcloud/end_to_end_encryption/  /var/www/html/apps/end_to_end_encryption/"
      - su www-data -c "php /var/www/html/occ app:enable end_to_end_encryption"
      - su www-data -c "git clone https://github.com/nextcloud/photos.git /var/www/html/apps/photos/"
      - su www-data -c "cd /var/www/html/apps/photos; composer install"
      - su www-data -c "php /var/www/html/occ app:enable -f photos"
      - /usr/local/bin/run.sh

trigger:
  branch:
    - master
    - stable-*
  event:
    - push
    - pull_request

---
kind: pipeline
type: docker
name: allScreenshots

steps:
  - name: runAllScreenshots
    image: ghcr.io/nextcloud/continuous-integration-android8:3
    privileged: true
    environment:
      GIT_USERNAME:
        from_secret: GIT_USERNAME
      GITHUB_TOKEN:
        from_secret: GIT_TOKEN
      LOG_USERNAME:
        from_secret: LOG_USERNAME
      LOG_PASSWORD:
        from_secret: LOG_PASSWORD
    commands:
      - emulator -avd android -no-snapshot -gpu swiftshader_indirect -no-window -no-audio -skin 500x833 &
      - sed -i s'#<bool name="is_beta">false</bool>#<bool name="is_beta">true</bool>#'g app/src/main/res/values/setup.xml
      - sed -i s'#showOnlyFailingTestsInReports = ciBuild#showOnlyFailingTestsInReports = false#' build.gradle
      - scripts/wait_for_emulator.sh
      - scripts/runAllScreenshotCombinations noCI false
      - scripts/screenshotSummary.sh
  - name: notify
    image: drillster/drone-email
    settings:
      port: 587
      from: nextcloud-drone@kaminsky.me
      recipients_only: true
      username:
        from_secret: EMAIL_USERNAME
      password:
        from_secret: EMAIL_PASSWORD
      recipients:
        from_secret: EMAIL_RECIPIENTS
      host:
        from_secret: EMAIL_HOST
    when:
      event:
        - push
      status:
        - failure
      branch:
        - master
        - stable-*
trigger:
  event:
    - cron
  cron:
    - allscreenshots
---
kind: secret
name: GIT_TOKEN
data: XIoa9IYq+xQ+N5iln8dlpWv0jV6ROr7HuE24ioUr4uQ8m8SjyH0yognWYLYLqnbTKrFWlFZiEMQTH/sZiWjRFvV1iL0=
---
kind: signature
hmac: 2d6dd316e41c77d4abd0864d9fe78e90ae727d32c3f6a485095b437840c86a89

...
