51d2da706e
* 5.1: Cleanup CI scripts fix code style fix code style take query and request parameters into account when matching routes mistake fix tests to run assertions on returned Crawler instances propagate groups to nested constraints
190 lines
7.9 KiB
YAML
190 lines
7.9 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
|
|
integration:
|
|
name: Integration
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
php: ['7.2', '7.4']
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:9.6-alpine
|
|
ports:
|
|
- 5432:5432
|
|
env:
|
|
POSTGRES_PASSWORD: 'password'
|
|
ldap:
|
|
image: bitnami/openldap
|
|
ports:
|
|
- 3389:3389
|
|
env:
|
|
LDAP_ADMIN_USERNAME: admin
|
|
LDAP_ADMIN_PASSWORD: symfony
|
|
LDAP_ROOT: dc=symfony,dc=com
|
|
LDAP_PORT_NUMBER: 3389
|
|
LDAP_USERS: a
|
|
LDAP_PASSWORDS: a
|
|
redis:
|
|
image: redis:6.0.0
|
|
ports:
|
|
- 6379:6379
|
|
redis-cluster:
|
|
image: grokzen/redis-cluster:5.0.4
|
|
ports:
|
|
- 7000:7000
|
|
- 7001:7001
|
|
- 7002:7002
|
|
- 7003:7003
|
|
- 7004:7004
|
|
- 7005:7005
|
|
- 7006:7006
|
|
env:
|
|
STANDALONE: 1
|
|
redis-sentinel:
|
|
image: bitnami/redis-sentinel:6.0
|
|
ports:
|
|
- 26379:26379
|
|
env:
|
|
REDIS_MASTER_HOST: redis
|
|
REDIS_MASTER_SET: redis_sentinel
|
|
REDIS_SENTINEL_QUORUM: 1
|
|
memcached:
|
|
image: memcached:1.6.5
|
|
ports:
|
|
- 11211:11211
|
|
rabbitmq:
|
|
image: rabbitmq:3.8.3
|
|
ports:
|
|
- 5672:5672
|
|
mongodb:
|
|
image: mongo
|
|
ports:
|
|
- 27017:27017
|
|
couchbase:
|
|
image: couchbase:6.5.1
|
|
ports:
|
|
- 8091:8091
|
|
- 8092:8092
|
|
- 8093:8093
|
|
- 8094:8094
|
|
- 11210:11210
|
|
sqs:
|
|
image: asyncaws/testing-sqs
|
|
ports:
|
|
- 9494:9494
|
|
zookeeper:
|
|
image: wurstmeister/zookeeper:3.4.6
|
|
kafka:
|
|
image: wurstmeister/kafka:2.12-2.4.1
|
|
ports:
|
|
- 9092:9092
|
|
env:
|
|
KAFKA_AUTO_CREATE_TOPICS_ENABLE: false
|
|
KAFKA_CREATE_TOPICS: 'test-topic:1:1:compact'
|
|
KAFKA_ADVERTISED_HOST_NAME: localhost
|
|
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
|
|
KAFKA_ADVERTISED_PORT: 9092
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
echo "::group::apt-get update"
|
|
sudo apt-get update
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::install tools & libraries"
|
|
sudo apt-get install librdkafka-dev
|
|
echo "::endgroup::"
|
|
|
|
- name: Configure Couchbase
|
|
run: |
|
|
curl -s -u 'username=Administrator&password=111111' -X POST http://localhost:8091/node/controller/setupServices -d 'services=kv%2Cn1ql%2Cindex%2Cfts'
|
|
curl -s -X POST http://localhost:8091/settings/web -d 'username=Administrator&password=111111&port=SAME'
|
|
curl -s -u Administrator:111111 -X POST http://localhost:8091/pools/default/buckets -d 'ramQuotaMB=100&bucketType=ephemeral&name=cache'
|
|
curl -s -u Administrator:111111 -X POST http://localhost:8091/pools/default -d 'memoryQuota=256'
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
coverage: "none"
|
|
extensions: "json,couchbase,memcached,mongodb,redis,rdkafka,xsl,ldap"
|
|
ini-values: "memory_limit=-1"
|
|
php-version: "${{ matrix.php }}"
|
|
tools: pecl
|
|
|
|
- name: Display versions
|
|
run: |
|
|
php -r 'foreach (get_loaded_extensions() as $extension) echo $extension . " " . phpversion($extension) . PHP_EOL;'
|
|
php -i
|
|
|
|
- name: Load fixtures
|
|
uses: docker://bitnami/openldap
|
|
with:
|
|
entrypoint: /bin/bash
|
|
args: -c "(ldapwhoami -h localhost:3389 -D cn=admin,dc=symfony,dc=com -w symfony||sleep 5) && ldapadd -h ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony -f src/Symfony/Component/Ldap/Tests/Fixtures/data/fixtures.ldif && ldapdelete -h ldap:3389 -D cn=admin,dc=symfony,dc=com -w symfony cn=a,ou=users,dc=symfony,dc=com"
|
|
|
|
- name: Configure composer
|
|
run: |
|
|
COMPOSER_HOME="$(composer config home)"
|
|
([ -d "$COMPOSER_HOME" ] || mkdir "$COMPOSER_HOME") && cp .github/composer-config.json "$COMPOSER_HOME/config.json"
|
|
echo "COMPOSER_ROOT_VERSION=$(grep branch-version composer.json | grep -o '[0-9.x]*').x-dev" >> $GITHUB_ENV
|
|
|
|
- name: Determine composer cache directory
|
|
id: composer-cache
|
|
run: echo "::set-output name=directory::$(composer config cache-dir)"
|
|
|
|
- name: Cache composer dependencies
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.directory }}
|
|
key: ${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: ${{ matrix.php }}-composer-
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
echo "::group::composer update"
|
|
composer require --dev --no-update mongodb/mongodb:@stable
|
|
composer update --no-progress --ansi
|
|
echo "::endgroup::"
|
|
echo "::group::install phpunit"
|
|
./phpunit install
|
|
echo "::endgroup::"
|
|
|
|
- name: Run tests
|
|
run: ./phpunit --group integration -v
|
|
env:
|
|
REDIS_HOST: localhost
|
|
REDIS_CLUSTER_HOSTS: 'localhost:7000 localhost:7001 localhost:7002 localhost:7003 localhost:7004 localhost:7005'
|
|
REDIS_SENTINEL_HOSTS: 'localhost:26379'
|
|
REDIS_SENTINEL_SERVICE: redis_sentinel
|
|
MESSENGER_REDIS_DSN: redis://127.0.0.1:7006/messages
|
|
MESSENGER_AMQP_DSN: amqp://localhost/%2f/messages
|
|
MESSENGER_SQS_DSN: "sqs://localhost:9494/messages?sslmode=disable&poll_timeout=0.01"
|
|
MESSENGER_SQS_FIFO_QUEUE_DSN: "sqs://localhost:9494/messages.fifo?sslmode=disable&poll_timeout=0.01"
|
|
MEMCACHED_HOST: localhost
|
|
LDAP_HOST: localhost
|
|
LDAP_PORT: 3389
|
|
MONGODB_HOST: localhost
|
|
KAFKA_BROKER: localhost:9092
|
|
POSTGRES_HOST: localhost
|
|
|
|
- name: Run HTTP push tests
|
|
if: matrix.php == '7.4'
|
|
run: |
|
|
[ -d .phpunit ] && mv .phpunit .phpunit.bak
|
|
wget -q https://github.com/symfony/binary-utils/releases/download/v0.1/vulcain_0.1.3_Linux_x86_64.tar.gz -O - | tar xz && mv vulcain /usr/local/bin
|
|
docker run --rm -e COMPOSER_ROOT_VERSION -v $(pwd):/app -v $(which composer):/usr/local/bin/composer -v /usr/local/bin/vulcain:/usr/local/bin/vulcain -w /app php:7.4-alpine ./phpunit src/Symfony/Component/HttpClient/Tests/CurlHttpClientTest.php --filter testHttp2Push
|
|
sudo rm -rf .phpunit
|
|
[ -d .phpunit.bak ] && mv .phpunit.bak .phpunit
|