Welcome to mirror list, hosted at ThFree Co, Russian Federation.

.travis.yml - github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 26899a9d9273f46f274ff3c0fe2f1a328d35f8b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
sudo: required
dist: trusty
language: php
php:
  - 7.2
  - 7.3
  - 7.4snapshot
#jobs:
#  allow_failures:
#  - php: nightly

addons:
  apt:
    packages:
    - mysql-server-5.6
    - mysql-client-core-5.6
    - mysql-client-5.6
    - php5-pgsql
    - libxml2-utils

services:
  - docker
  - postgresql

env:
  global:
  - CORE_BRANCH=master
  - PHP_COVERAGE=FALSE
  - TEST_SUITE=TEST-PHP
  - DB=mysql
  - PATCH_VERSION_CHECK=FALSE
  matrix:
  - TEST_SUITE=LINT-PHP
  - TEST_SUITE=TEST-PHP

matrix:
  include:
    - php: 7.3
      env: "DB=pgsql"
    - php: 7.3
      env: "TEST_SUITE=TEST-JS"
    - php: 7.3
      env: "TEST_SUITE=PACKAGE"
    - php: 7.2
      env: "PHP_COVERAGE=TRUE"
    - php: 7.3
      env: "DB=pgsql CORE_BRANCH=stable17"
    - php: 7.3
      env: "CORE_BRANCH=stable17"
    - php: 7.3
      env: "DB=sqlite CORE_BRANCH=stable17"
    - php: nightly
      env: "DB=sqlite PATCH_VERSION_CHECK=TRUE"
  fast_finish: true

branches:
  only:
  - master
  - "/^stable\\d+(\\.\\d+)?$/"
  - /^v\d++(\.\d+)?+(\.\d+)?+(\.\d+)?$/
  - refactor/vue

cache:
  directories:
  - "$HOME/.composer/cache/files"
  - "$HOME/.npm"

before_install:
  - php --info

  # Install Krankerl
  - wget https://github.com/ChristophWurst/krankerl/releases/download/v0.10.1/krankerl_0.10.1_amd64.deb
  - sudo dpkg -i krankerl_0.10.1_amd64.deb

  # Set up DB
  - if [[ "$DB" == 'pgsql' ]]; then createuser -U travis -s oc_autotest; fi
  - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e 'create database oc_autotest;'; fi
  - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "CREATE USER 'oc_autotest'@'localhost' IDENTIFIED BY '';"; fi
  - if [[ "$DB" == 'mysql' ]]; then mysql -u root -e "GRANT ALL ON oc_autotest.* TO 'oc_autotest'@'localhost';"; fi

  - composer self-update
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then make install-composer-deps-dev; fi"
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then make start-imap-docker; fi"
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then make start-smtp-docker; fi"
  - cd ..
  - git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b $CORE_BRANCH core
  - if [[ "$PATCH_VERSION_CHECK" = "TRUE" ]]; then echo "<?php" > core/lib/versioncheck.php; fi
  - if [[ "$PATCH_VERSION_CHECK" = "TRUE" ]]; then  sed -ri 's/(<php min\-version="[0-9\.]+") max\-version="[0-9\.]+"/\1/g' mail/appinfo/info.xml; fi
  - mv mail core/apps/

before_script:
  # Set up core
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then php -f core/occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database $DB --database-pass=''; fi"

  # Set up app
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then php -f core/occ app:enable mail; fi"
  # Enable app twice to check occ errors of registered commands
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then php -f core/occ app:enable mail; fi"
  - cd core/apps/mail
  - sh -c "if [ '$TEST_SUITE' = 'TEST-JS' ]; then npm install -g npm@latest; fi"
  - sh -c "if [ '$TEST_SUITE' = 'TEST-JS' ]; then make dev-setup; fi"

  # Prepare IMAP test docker
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then make add-imap-account; fi"

  # XDebug is only needed if we report coverage -> speeds up other builds
  - if [[ "$PHP_COVERAGE" = "FALSE" ]]; then phpenv config-rm xdebug.ini || true; fi

  # Print running docker images, just to verify they did not crash
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then docker ps; fi"

script:
  # Check info.xml schema validity
  - wget https://apps.nextcloud.com/schema/apps/info.xsd
  - xmllint appinfo/info.xml --schema info.xsd --noout
  - rm info.xsd

  # Run server's app code checker
  - sh -c "if [ '$TEST_SUITE' = 'LINT-PHP' ]; then php ../../occ app:check-code mail; fi"

  # Run JS tests
  - sh -c "if [ '$TEST_SUITE' = 'TEST-JS' ]; then npm test; fi"
  # - sh -c "if [ '$TEST_JS' = 'TRUE' ]; then cat ./coverage/*/lcov.info | ./node_modules/coveralls/bin/coveralls.js; fi"

  # Run JS lint
  - sh -c "if [ '$TEST_SUITE' = 'TEST-JS' ]; then npm run lint; fi"

  # Run PHP tests
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then composer test:unit; fi"
  - sh -c "if [ '$TEST_SUITE' = 'TEST-PHP' ]; then composer test:integration; fi"
  - if [[ "$PHP_COVERAGE" = "TRUE" ]]; then wget https://scrutinizer-ci.com/ocular.phar; fi
  - if [[ "$PHP_COVERAGE" = "TRUE" ]]; then php ocular.phar code-coverage:upload --format=php-clover tests/clover.unit.xml; fi
  - if [[ "$PHP_COVERAGE" = "TRUE" ]]; then php ocular.phar code-coverage:upload --format=php-clover tests/clover.integration.xml; fi

  # Test packaging
  - if [[ "$TEST_SUITE" = "PACKAGE" ]]; then make appstore; fi