-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (88 loc) · 2.89 KB
/
test-integration.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
name: test-integration
on:
push:
branches: [ develop, master ]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
if: always()
steps:
- name: Checkout
uses: actions/checkout@master
- name: Get Composer cache directory
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Restore Composer cache
uses: actions/cache@v1
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Init environment
run: cd docker && ./init.sh && cat .env
- name: Build Docker environmnent
if: always()
run: |
cd docker &&
docker-compose -f ../docker-compose.yml up -d --build --force-recreate
- name: Install Composer dependencies
if: always()
run: |
docker-compose exec -T php-fpm sh -c '
SYMFONY_ENV=test COMPOSER_MEMORY_LIMIT=-1 composer install --prefer-dist -n -o
'
- name: Clear Symfony caches
if: always()
run: |
docker-compose exec -T php-fpm sh -c '
./bin/console cache:clear --env=test
'
- name: Build frontend dependencies
if: always()
run: |
docker-compose exec -T php-fpm sh -c '
CYPRESS_INSTALL_BINARY=0 npm i && \
npm run encore production
'
- name: Run code quality tests
if: always()
run: |
docker-compose exec -T php-fpm sh -c '
echo -e "\nPHP Mess Detector\n" && \
./ci/phpmd.sh && \
echo -e "\nPHP CodeSniffer\n" && \
./ci/phpcs.sh && \
echo -e "\nPHP Lint\n" && \
./ci/phplint.sh && \
echo -e "\nDocheader checker\n" && \
./ci/docheader.sh && \
echo -e "\nPHP Copy Paste Detector\n" && \
./ci/phpmd.sh
'
env:
SYMFONY_ENV: test
- name: Run unit tests
if: always()
run: |
APP_ENV=test docker-compose exec -T php-fpm sh -c '
echo -e "\nPHPUnit unit tests\n" && \
./ci/phpunit.sh
'
env:
SYMFONY_ENV: test
- name: Run Cypress a11y tests
if: always()
continue-on-error: true
run: |
APP_ENV=test docker-compose exec -T cypress sh -c '
echo -e "\nCypress a11y tests\n" && \
cypress run --spec "./tests/cypress/integration/a11y/*.spec.js" --browser=electron --headless' env:
SYMFONY_ENV: test
- name: Show log on failure
if: failure()
run: |
cd docker && docker-compose exec -T php-fpm cat var/logs/test/test.log