forked from phalcon/phalcon
-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (121 loc) · 4.75 KB
/
testing-suite.yml
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
name: Testing Suite
on: [push, pull_request]
jobs:
build-and-test-linux:
services:
mysql:
image: mysql:5.7
ports:
- 3306
env:
MYSQL_ROOT_PASSWORD: secret
MYSQL_USER: phalcon
MYSQL_DATABASE: phalcon
MYSQL_PASSWORD: secret
postgres:
image: postgres:12-alpine
ports:
- 5432
env:
POSTGRES_PASSWORD: secret
POSTGRES_USER: phalcon
POSTGRES_DB: phalcon
redis:
image: redis:5-alpine
ports:
- 6379
memcached:
image: memcached:1.5-alpine
ports:
- 11211
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: [ubuntu-latest]
php-versions: ['7.4']
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
steps:
- name: Git checkout
uses: actions/checkout@v2-beta
with:
fetch-depth: 1
- name: Get Composer Cache Directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Setup Cache
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Setup Composer Token
run: |
# To increase the Composer rate limit we're use GitHub authentication
if [ -n "${{ secrets.COMPOSER_TOKEN }}" ]; then
composer config github-oauth.github.com "${{ secrets.COMPOSER_TOKEN }}"
fi
- name: Setup PHP
uses: shivammathur/setup-php@v1
with:
php-version: ${{ matrix.php-versions }}
ini-values: apc.enable_cli=on, session.save_path=/tmp
tools: pecl
extensions: mbstring, intl, json, imagick
- name: Install packages
run: composer install --prefer-dist
- name: Setup tests
run: |
cp tests/_ci/.env.default .env
vendor/bin/codecept build
- name: Run unit tests
run: vendor/bin/codecept run --ext DotReporter unit --coverage --coverage-xml
- name: Code Coverage unit tests
run: php ./bin/ocular.phar code-coverage:upload --format=php-clover ./tests/_output/coverage.xml
- name: Code Coverage - Codacy
uses: codacy/codacy-coverage-reporter-action@master
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: ./tests/_output/coverage.xml
# - name: Run integration tests
# env:
# DATA_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
# DATA_MEMCACHED_PORT: ${{ job.services.memcached.ports['11211'] }}
# run: vendor/bin/codecept run --ext DotReporter integration --coverage --coverage-xml
#
# - name: Code Coverage integration tests
# run: php ./bin/ocular.phar code-coverage:upload --format=php-clover ./tests/_output/coverage.xml
#
# - name: Run database tests MySQL
# env:
# DATA_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
# DATA_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
# DATA_MEMCACHED_PORT: ${{ job.services.memcached.ports['11211'] }}
# run: vendor/bin/codecept run --ext DotReporter database --env mysql --coverage --coverage-xml
#
# - name: Code Coverage database tests MySql
# run: php ./bin/ocular.phar code-coverage:upload --format=php-clover ./tests/_output/coverage.xml
#
# - name: Run database tests Sqlite
# env:
# DATA_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
# DATA_MEMCACHED_PORT: ${{ job.services.memcached.ports['11211'] }}
# run: vendor/bin/codecept run --ext DotReporter database --env sqlite --coverage --coverage-xml
#
# - name: Code Coverage database tests Sqlite
# run: php ./bin/ocular.phar code-coverage:upload --format=php-clover ./tests/_output/coverage.xml
#
## # TODO Enable these one at a time and also for MacOS/Windows
## - name: Run database tests Postgres
## env:
## DATA_POSTGRES_PORT: ${{ job.services.postgres.ports['5432'] }}
## DATA_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
## DATA_MEMCACHED_PORT: ${{ job.services.memcached.ports['11211'] }}
## run: vendor/bin/codecept run --ext DotReporter database --env pgsql
## - name: Run integrations tests SQL Server
## env:
## DATA_REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
## DATA_MEMCACHED_PORT: ${{ job.services.memcached.ports['11211'] }}
## run: vendor/bin/codecept run --ext DotReporter database --env sqlsrv