kind: pipeline
name: qt-5.15

steps:
- name: cmake
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - cmake -G Ninja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DADD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src

- name: compile
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - ninja

- name: test
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - useradd -m -s /bin/bash test
    - chown -R test:test .
    - su -c 'ASAN_OPTIONS=detect_odr_violation=0,detect_leaks=0 xvfb-run ctest --output-on-failure' test

services:
  - name: server
    image: ghcr.io/nextcloud/continuous-integration-server:latest # also change in updateScreenshots.sh
    environment:
      EVAL: true
      SERVER_VERSION: 'stable24'
    commands:
      - BRANCH="$SERVER_VERSION" /usr/local/bin/initnc.sh
      - echo 127.0.0.1 server >> /etc/hosts
      - 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 --depth=1 -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 --depth=1 -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 --depth=1 -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"
      - /usr/local/bin/run.sh

volumes:
- name: build
  temp: {}

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

---
kind: pipeline
name: qt-5.15-clang

steps:
- name: cmake
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_C_COMPILER=clang-14 -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_BUILD_TYPE=Debug -DQUICK_COMPILER=ON -DBUILD_UPDATER=ON -DBUILD_TESTING=1 -DADD_E2E_TESTS=ON -DECM_ENABLE_SANITIZERS=address -DCMAKE_CXX_FLAGS=-Werror -DOPENSSL_ROOT_DIR=/usr/local/lib64 ../src
- name: compile
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - ninja
- name: test
  image: ghcr.io/nextcloud/continuous-integration-client:client-5.15-11
  volumes:
    - name: build
      path: /drone/build
  commands:
    - cd /drone/build
    - useradd -m -s /bin/bash test
    - chown -R test:test .
    - su -c 'ASAN_OPTIONS=detect_odr_violation=0,detect_leaks=0 xvfb-run ctest --output-on-failure' test

services:
  - name: server
    image: ghcr.io/nextcloud/continuous-integration-server:latest # also change in updateScreenshots.sh
    environment:
      EVAL: true
      SERVER_VERSION: 'stable24'
    commands:
      - BRANCH="$SERVER_VERSION" /usr/local/bin/initnc.sh
      - echo 127.0.0.1 server >> /etc/hosts
      - 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 --depth=1 -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 --depth=1 -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 --depth=1 -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"
      - /usr/local/bin/run.sh

volumes:
- name: build
  temp: {}

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

---
kind: pipeline
name: AppImage

steps:
- name: build
  image: ghcr.io/nextcloud/continuous-integration-client-appimage:client-appimage-6
  environment:
    CI_UPLOAD_GIT_TOKEN:
      from_secret: CI_UPLOAD_GIT_TOKEN
    CI_UPLOAD_GIT_USERNAME:
      from_secret: CI_UPLOAD_GIT_USERNAME
  commands:
    - BUILDNR=$DRONE_BUILD_NUMBER VERSION_SUFFIX=$DRONE_PULL_REQUEST BUILD_UPDATER=ON DESKTOP_CLIENT_ROOT=$DRONE_WORKSPACE /bin/bash -c "./admin/linux/build-appimage.sh"
    - BUILDNR=$DRONE_BUILD_NUMBER VERSION_SUFFIX=$DRONE_PULL_REQUEST DESKTOP_CLIENT_ROOT=$DRONE_WORKSPACE /bin/bash -c "./admin/linux/upload-appimage.sh" || echo "Upload failed, however this is an optional step."
trigger:
  branch:
    - master
    - stable-*
  event:
    - pull_request
    - push
---
kind: pipeline
name: Debian

steps:
- name: build
  image: ghcr.io/nextcloud/continuous-integration-client-debian:client-debian-3
  commands:
    - /bin/bash -c "./admin/linux/debian/drone-build.sh" || echo "[WARNING] Debian build failed but this is a non-blocking CI event"
  environment:
    DEBIAN_SECRET_KEY:
      from_secret: DEBIAN_SECRET_KEY
    DEBIAN_SECRET_IV:
      from_secret: DEBIAN_SECRET_IV
trigger:
  branch:
    - master
  event:
    - pull_request
    - push
---
kind: pipeline
name: Documentation

steps:
- name: build
  image: nextcloudci/documentation:documentation-5
  commands:
    - cd doc
    - make html
trigger:
  branch:
    - master
  event:
    - pull_request
    - push
