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: 823cdb8528bcce5de5e6f38f5d8d740350787720 (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
sudo: required
dist: trusty
language: php
php:
  - 7.1
  - 7.2
  - 7.3

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
  matrix:
  - DB=mysql TEST_SUITE=LINT-PHP
  - DB=mysql TEST_SUITE=TEST-PHP

matrix:
  include:
    - php: 7.3
      env: "DB=pgsql"
    - php: 7.3
      env: "DB=mysql TEST_SUITE=TEST-JS"
    - php: 7.3
      env: "DB=mysql TEST_SUITE=PACKAGE"
    - php: 7.1
      env: "DB=mysql PHP_COVERAGE=TRUE"
    - php: 7.3
      env: "DB=pgsql CORE_BRANCH=v17.0.0beta3"
    - php: 7.3
      env: "DB=mysql CORE_BRANCH=v17.0.0beta3"
    - php: 7.3
      env: "DB=sqlite CORE_BRANCH=v17.0.0beta3"
  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
  - 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; 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

  # Check PHP syntax errors
  - sh -c "if [ '$TEST_SUITE' = 'LINT-PHP' ]; then composer run lint; fi"

  # 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 run test; 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.xml; fi

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