kind: pipeline
name: jsunit

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: jsunit
  image: nextcloudci/jsunit:jsunit-5
  commands:
    - ./autotest-js.sh
    - curl -o codecov.sh https://codecov.io/bash
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"

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

---
kind: pipeline
name: webpack-build

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: webpack-build
  image: nextcloudci/node:node-4
  commands:
    - npm ci
    - npm run build
    - git status
    - bash -c "[[ ! \"`git status --porcelain `\" ]] || ( echo 'Uncommited changes in webpack build' && exit 1 )"

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

---
kind: pipeline
name: checkers

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: checkers
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - ./autotest-checkers.sh
  secrets: [ github_token ]

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

---
kind: pipeline
name: handlebars

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: handlebars
  image: node
  commands:
    - npm install handlebars -g
    - ./build/compile-handlebars-templates.sh

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

---
kind: pipeline
name: syntax-and-phan

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: syntax-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - composer install
    - ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
- name: syntax-php7.2
  image: nextcloudci/php7.2:php7.2-12
  commands:
    - composer install
    - ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php --exclude 3rdparty/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php .
- name: syntax-php7.3
  image: nextcloudci/php7.3:php7.3-1
  commands:
    - composer install
    - ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php --exclude 3rdparty/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php .
- name: phan
  image: nextcloudci/php7.2:php7.2-12
  commands:
    - composer install
    - composer require --dev "phan/phan:0.11.1"
    - ./lib/composer/phan/phan/phan -k build/.phan/config.php
    - php ./build/.phan/plugin-checker.php

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

---
kind: pipeline
name: litmus

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: litmus-v1
  image: nextcloudci/litmus-php7.1:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/litmus-v1/script.sh
- name: litmus-v2
  image: nextcloudci/litmus-php7.2:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/litmus-v2/script.sh

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

---
kind: pipeline
name: caldavtester-new-endpoint

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: caldavtester-new-endpoint
  image: nextcloudci/litmus-php7.1:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/caldav/install.sh
    - bash apps/dav/tests/travis/caldav/script-new-endpoint.sh

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

---
kind: pipeline
name: caldavtester-old-endpoint

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: caldavtester-old-endpoint
  image: nextcloudci/litmus-php7.1:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/caldav/install.sh
    - bash apps/dav/tests/travis/caldav/script-old-endpoint.sh

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

---
kind: pipeline
name: carddavtester-new-endpoint

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: carddavtester-new-endpoint
  image: nextcloudci/litmus-php7.1:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/carddav/install.sh
    - bash apps/dav/tests/travis/carddav/script-new-endpoint.sh

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

---
kind: pipeline
name: carddavtester-old-endpoint

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: carddavtester-old-endpoint
  image: nextcloudci/litmus-php7.1:1
  commands:
    - bash tests/travis/install.sh sqlite
    - bash apps/dav/tests/travis/carddav/install.sh
    - bash apps/dav/tests/travis/carddav/script-old-endpoint.sh

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

---
kind: pipeline
name: samba

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: sqlite-php7.0-samba-native
  image: nextcloudci/samba-native-php7.1:1
  commands:
    - smbd -D -FS &
    - ./autotest-external.sh sqlite smb-linux
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
- name: sqlite-php7.0-samba-non-native
  image: nextcloudci/samba-non-native-php7.1:1
  commands:
    - smbd -D -FS &
    - ./autotest-external.sh sqlite smb-linux
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"

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

---
kind: pipeline
name: sqlite-php7.1-webdav-apache

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: sqlite-php7.0-webdav-apache
  image: nextcloudci/webdav-apache-php7.1:1
  commands:
    - apache2
    - ./autotest-external.sh sqlite webdav-apachedrone
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-webdav-apachedrone.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-webdav-apachedrone.xml; fi"

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: nodb

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: nodb-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
- name: nodb-php7.2
  image: nextcloudci/php7.2:php7.2-11
  commands:
    - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
- name: nodb-php7.3
  image: nextcloudci/php7.3:php7.3-1
  commands:
    - NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: sqlite

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: sqlite-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
- name: sqlite-php7.2
  image: nextcloudci/php7.2:php7.2-12
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
- name: sqlite-php7.3
  image: nextcloudci/php7.3:php7.3-1
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: mysql-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysql-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql

services:
- name: cache
  image: redis
- name: mysql
  image: mysql:5.7
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: mysql-php7.2

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysql-php7.2
  image: nextcloudci/php7.2:php7.2-12
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql

services:
- name: mysql
  image: mysql:5.7
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: mysql-php7.3

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysql-php7.3
  image: nextcloudci/php7.3:php7.3-1
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql

services:
- name: mysql
  image: mysql:5.7
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: mysql5.6-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysql5.6-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql

services:
- name: cache
  image: redis
- name: mysql
  image: mysql:5.6
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  tmpfs:
    - /var/lib/mysql
trigger:
  branch:
    - master
    - stable*
  event:
    - pull_request
    - push

---
kind: pipeline
name: mysql5.5-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysql5.5-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql

services:
- name: cache
  image: redis
- name: mysql
  image: mysql:5.5
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: postgres9-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: postgres-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - sleep 10 # gives the database enough time to initialize
    - POSTGRES=9 NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql

services:
- name: cache
  image: redis
- name: postgres-9
  image: postgres:9
  environment:
    POSTGRES_USER: oc_autotest
    POSTGRES_DB: oc_autotest_dummy
    POSTGRES_PASSWORD: owncloud
  tmpfs:
    - /var/lib/postgresql/data

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

---
kind: pipeline
name: postgres10-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: postgres-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - sleep 10 # gives the database enough time to initialize
    - POSTGRES=10 NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql

services:
- name: cache
  image: redis
- name: postgres-10
  image: postgres:10
  environment:
    POSTGRES_USER: oc_autotest
    POSTGRES_DB: oc_autotest_dummy
    POSTGRES_PASSWORD: owncloud
  tmpfs:
    - /var/lib/postgresql/data

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

---
kind: pipeline
name: mysqlmb4-php7.1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysqlmb4-php7.1
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4

services:
- name: cache
  image: redis
- name: mysqlmb4
  image: mysql:5.7.22
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: mysqlmb4-php7.2

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysqlmb4-php7.2
  image: nextcloudci/php7.2:php7.2-12
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4

services:
- name: cache
  image: redis
- name: mysqlmb4
  image: mysql:5.7.22
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: mysqlmb4-php7.3

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: mysqlmb4-php7.3
  image: nextcloudci/php7.3:php7.3-1
  commands:
    - NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4

services:
- name: cache
  image: redis
- name: mysqlmb4
  image: mysql:5.7.22
  environment:
    MYSQL_ROOT_PASSWORD: owncloud
    MYSQL_USER: oc_autotest
    MYSQL_PASSWORD: owncloud
    MYSQL_DATABASE: oc_autotest
  command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
  tmpfs:
    - /var/lib/mysql

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

---
kind: pipeline
name: integration-capabilities_features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-capabilities_features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh capabilities_features/capabilities.feature

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

---
kind: pipeline
name: integration-federation_features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-federation_features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin
    - cd build/integration
    - ./run.sh federation_features/federated.feature

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

---
kind: pipeline
name: integration-auth

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-auth
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/auth.feature

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

---
kind: pipeline
name: integration-maintenance-mode

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-maintenance-mode
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/maintenance-mode.feature

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

---
kind: pipeline
name: integration-ratelimiting

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ratelimiting
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - ./occ config:system:set redis host --value=cache
    - ./occ config:system:set redis port --value=6379 --type=integer
    - ./occ config:system:set redis timeout --value=0 --type=integer
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed
    - ./occ app:enable testing
    - cd build/integration
    - ./run.sh features/ratelimiting.feature

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: integration-carddav

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-carddav
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/carddav.feature

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

---
kind: pipeline
name: integration-dav-v2

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-dav-v2
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/dav-v2.feature

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

---
kind: pipeline
name: integration-ocs-v1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ocs-v1
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/ocs-v1.feature

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

---
kind: pipeline
name: integration-sharing-v1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-sharing-v1
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/sharing-v1.feature

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

---
kind: pipeline
name: integration-sharing-v1-part2

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-sharing-v1-part2
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/sharing-v1-part2.feature

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

---
kind: pipeline
name: integration-sharing-v1-part3

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-sharing-v1-part3
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/sharing-v1-part3.feature

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

---
kind: pipeline
name: integration-checksums-v1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-checksums-v1
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/checksums.feature

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

---
kind: pipeline
name: integration-external-storage

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-external-storage
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/external-storage.feature

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

---
kind: pipeline
name: integration-provisioning-v1

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-provisioning-v1
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/provisioning-v1.feature

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

---
kind: pipeline
name: integration-tags

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-tags
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/tags.feature

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

---
kind: pipeline
name: integration-caldav

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-caldav
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/caldav.feature

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

---
kind: pipeline
name: integration-comments

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-comments
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/comments.feature

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

---
kind: pipeline
name: integration-comments-search

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-comments-search
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/comments-search.feature

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

---
kind: pipeline
name: integration-favorites

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-favorites
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/favorites.feature

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

---
kind: pipeline
name: integration-provisioning-v2

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-provisioning-v2
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/provisioning-v2.feature

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

---
kind: pipeline
name: integration-webdav-related

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-webdav-related
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/webdav-related.feature

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

---
kind: pipeline
name: integration-sharees-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-sharees-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh sharees_features/sharees.feature

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

---
kind: pipeline
name: integration-sharees-v2-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-sharees-v2-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh sharees_features/sharees_provisioningapiv2.feature

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

---
kind: pipeline
name: integration-setup-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-setup-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - cd build/integration
    - ./run.sh setup_features/setup.feature

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

---
kind: pipeline
name: integration-filesdrop-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-filesdrop-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh filesdrop_features/filesdrop.feature

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

---
kind: pipeline
name: integration-transfer-ownership-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-transfer-ownership-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/transfer-ownership.feature

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

---
kind: pipeline
name: integration-ldap-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ldap-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh ldap_features/ldap-ocs.feature

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

---
kind: pipeline
name: integration-ldap-openldap-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ldap-openldap-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - ./occ config:system:set redis host --value=cache
    - ./occ config:system:set redis port --value=6379 --type=integer
    - ./occ config:system:set redis timeout --value=0 --type=integer
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed
    - cd build/integration
    - ./run.sh ldap_features/ldap-openldap.feature

services:
- name: cache
  image: redis
- name: openldap
  image: nextcloudci/openldap:openldap-7
  environment:
    SLAPD_DOMAIN: nextcloud.ci
    SLAPD_ORGANIZATION: Nextcloud
    SLAPD_PASSWORD: admin
    SLAPD_ADDITIONAL_MODULES: memberof

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

---
kind: pipeline
name: integration-ldap-openldap-uid-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ldap-openldap-uid-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - ./occ config:system:set redis host --value=cache
    - ./occ config:system:set redis port --value=6379 --type=integer
    - ./occ config:system:set redis timeout --value=0 --type=integer
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed
    - cd build/integration
    - ./run.sh ldap_features/openldap-uid-username.feature

services:
- name: cache
  image: redis
- name: openldap
  image: nextcloudci/openldap:openldap-7
  environment:
    SLAPD_DOMAIN: nextcloud.ci
    SLAPD_ORGANIZATION: Nextcloud
    SLAPD_PASSWORD: admin
    SLAPD_ADDITIONAL_MODULES: memberof

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

---
kind: pipeline
name: integration-ldap-openldap-numerical-id-features

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-ldap-openldap-numerical-id-features
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - ./occ config:system:set redis host --value=cache
    - ./occ config:system:set redis port --value=6379 --type=integer
    - ./occ config:system:set redis timeout --value=0 --type=integer
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local
    - ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed
    - cd build/integration
    - ./run.sh ldap_features/openldap-numerical-id.feature

services:
- name: cache
  image: redis
- name: openldap
  image: nextcloudci/openldap:openldap-7
  environment:
    SLAPD_DOMAIN: nextcloud.ci
    SLAPD_ORGANIZATION: Nextcloud
    SLAPD_PASSWORD: admin
    SLAPD_ADDITIONAL_MODULES: memberof

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

---
kind: pipeline
name: integration-trashbin

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-trashbin
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh features/trashbin.feature

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

---
kind: pipeline
name: integration-remote-api

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-remote-api
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh remoteapi_features/remote.feature

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

---
kind: pipeline
name: integration-download

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: integration-download
  image: nextcloudci/integration-php7.1:1
  commands:
    - bash tests/drone-run-integration-tests.sh || exit 0
    - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
    - cd build/integration
    - ./run.sh --tags ~@large features/download.feature

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

---
kind: pipeline
name: acceptance-access-levels

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-access-levels
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-access-levels --selenium-server selenium:4444 allow-git-repository-modifications features/access-levels.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-comments

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-comments
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-comments --selenium-server selenium:4444 allow-git-repository-modifications features/app-comments.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-files

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-files
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files --selenium-server selenium:4444 allow-git-repository-modifications features/app-files.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-files-sharing

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-files-sharing
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files-sharing --selenium-server selenium:4444 allow-git-repository-modifications features/app-files-sharing.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-files-sharing-link

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-files-sharing-link
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files-sharing-link --selenium-server selenium:4444 allow-git-repository-modifications features/app-files-sharing-link.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-files-tags

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-files-tags
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files-tags --selenium-server selenium:4444 allow-git-repository-modifications features/app-files-tags.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-app-theming

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-app-theming
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-theming --selenium-server selenium:4444 allow-git-repository-modifications features/app-theming.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-header

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-header
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-header --selenium-server selenium:4444 allow-git-repository-modifications features/header.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-login

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-login
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-login --selenium-server selenium:4444 allow-git-repository-modifications features/login.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-users

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-users
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-users --selenium-server selenium:4444 allow-git-repository-modifications features/users.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: acceptance-apps

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: acceptance-apps
  image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2
  commands:
    - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-apps --selenium-server selenium:4444 allow-git-repository-modifications features/apps.feature

services:
- name: selenium
  image: selenium/standalone-firefox:2.53.1-beryllium
  environment:
    # Reduce default log level for Selenium server (INFO) as it is too
    # verbose.
    JAVA_OPTS: -Dselenium.LOGGER.level=WARNING

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

---
kind: pipeline
name: nodb-codecov

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: nodb-codecov
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - phpenmod xdebug
    - TEST_SELECTION=NODB ./autotest.sh sqlite
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: db-codecov

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: db-codecov
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - phpenmod xdebug
    - TEST_SELECTION=QUICKDB ./autotest.sh sqlite
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

services:
- name: cache
  image: redis

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

---
kind: pipeline
name: object-store-s3

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: object-store
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - phpenmod xdebug
    - ./tests/drone-wait-objectstore.sh
    - TEST_SELECTION=PRIMARY-s3 ./autotest.sh sqlite
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

services:
- name: fake-s3
  image: lphoward/fake-s3:latest

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

---
kind: pipeline
name: object-store-azure

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: object-store
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - phpenmod xdebug
    - ./tests/drone-wait-objectstore.sh
    - TEST_SELECTION=PRIMARY-azure ./autotest.sh sqlite
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

services:
- name: azurite
  image: arafato/azurite:latest
  environment:
    executable: blob

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

---
#kind: pipeline
#name: object-store-swift-v2
#
#clone:
#  depth: 1
#
#steps:
#- name: submodules
#  image: docker:git
#  commands:
#    - git submodule update --init
#- name: object-store
#  image: nextcloudci/php7.1:php7.1-16
#  commands:
#    - phpenmod xdebug
#    - ./tests/drone-wait-objectstore.sh
#    - TEST_SELECTION=PRIMARY-${OBJECT_STORE} ./autotest.sh sqlite
#    - wget https://codecov.io/bash -O codecov.sh
#    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
#    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
#
#services:
#- name: dockswift
#  image: icewind1991/dockswift:nextcloud-ci
#  environment:
#    IPADDRESS: dockswift
#
#trigger:
#  branch:
#    - master
#    - stable*
#  event:
#    - pull_request
#    - push
#
#---
#kind: pipeline
#name: object-store-swift-v3
#
#clone:
#  depth: 1
#
#steps:
#- name: submodules
#  image: docker:git
#  commands:
#    - git submodule update --init
#- name: object-store
#  image: nextcloudci/php7.1:php7.1-16
#  commands:
#    - phpenmod xdebug
#    - ./tests/drone-wait-objectstore.sh
#    - TEST_SELECTION=PRIMARY-${OBJECT_STORE} ./autotest.sh sqlite
#    - wget https://codecov.io/bash -O codecov.sh
#    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
#    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
#
#services:
#- name: dockswift
#  image: icewind1991/dockswift:nextcloud-ci
#  environment:
#    IPADDRESS: dockswift
#
#trigger:
#  branch:
#    - master
#    - stable*
#  event:
#    - pull_request
#    - push
#
#---
kind: pipeline
name: memcache-memcached

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: memcache-memcached
  image: nextcloudci/php7.1-memcached:1
  commands:
    - phpenmod xdebug
    - service memcached restart
    - ./autotest.sh sqlite tests/lib/Memcache/MemcachedTest.php
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

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

---
kind: pipeline
name: memcache-redis-cluster

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: memcache-redis-cluster
  image: nextcloudci/php7.1:php7.1-16
  commands:
    - phpenmod xdebug
    - sleep 20
    - ./autotest.sh sqlite tests/lib/Memcache/RedisTest.php
    - wget https://codecov.io/bash -O codecov.sh
    - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
    - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"

services:
- name: cache-cluster
  image: morrisjobke/redis-cluster

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

---
kind: pipeline
name: ui-regression

steps:
- name: submodules
  image: docker:git
  commands:
    - git submodule update --init
- name: ui-regression
  image: nextcloudci/ui-regression:ui-regression-1
  commands:
    - cd tests/ui-regression
    - npm install
    - chown -R pptruser out node_modules
    - bash -c "until curl -s http://ui-regression-php-master > /dev/null && curl -s http://ui-regression-php > /dev/null; do sleep 2; done"
    - sudo -u pptruser node runTests.js || true
    - echo "The result can be found at https://s3.bitgrid.net/nextcloud-ui-regression/nextcloud/server/${DRONE_PULL_REQUEST}/index.html"
  shm_size: '1gb'

services:
- name: ui-regression-php
  image: nextcloudci/server:server-1
  commands:
    - . /etc/apache2/envvars
    - rm -fr /var/www/html
    - mkdir /var/www/html && cp -rT . /var/www/html && chown -R www-data:www-data /var/www/html
    - rm -fr /var/www/html/config/config.php /var/www/html/data/*
    - apache2 -DFOREGROUND
- name: ui-regression-php-master
  image: nextcloudci/server:server-1
  commands:
    - . /etc/apache2/envvars
    - rm -fr /var/www/html/config/config.php /var/www/html/data/*
    - su www-data -c "cd /var/www/html/ && git checkout $DRONE_REPO_BRANCH && git pull && git submodule update"
    - apache2 -DFOREGROUND
- name: publish-s3
  image: plugins/s3
  settings:
    endpoint: https://ci-assets.nextcloud.com
    bucket: nextcloud-ui-regression
    path_style: true
    source: tests/ui-regression/out/**/*
    strip_prefix: tests/ui-regression/out/
    acl: public-read
    target: ${DRONE_REPO_OWNER}/${DRONE_REPO_NAME}/${DRONE_PULL_REQUEST}
  secrets: [ aws_access_key_id, aws_secret_access_key ]

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