2b206ff4b2
* 4.4: [gha] Fix leftover
156 lines
6.6 KiB
YAML
156 lines
6.6 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
|
|
integration:
|
|
name: Integration
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
php: ['7.2', '7.4']
|
|
|
|
services:
|
|
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
|
|
- 7007:7007
|
|
env:
|
|
STANDALONE: true
|
|
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::add apt sources"
|
|
sudo wget -O - http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -
|
|
echo "deb http://packages.couchbase.com/ubuntu bionic bionic/main" | sudo tee /etc/apt/sources.list.d/couchbase.list
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::apt-get update"
|
|
sudo apt-get update
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::install tools & libraries"
|
|
sudo apt-get install libcouchbase-dev 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"
|
|
ini-values: "memory_limit=-1"
|
|
php-version: "${{ matrix.php }}"
|
|
tools: flex,pecl
|
|
|
|
- name: Configure composer
|
|
run: |
|
|
([ -d ~/.composer ] || mkdir ~/.composer) && cp .github/composer-config.json ~/.composer/config.json
|
|
SYMFONY_VERSION=$(cat composer.json | grep '^ *\"version\". *\"[1-9]' | grep -o '[0-9.]*[0-9]')
|
|
echo "::set-env name=SYMFONY_VERSION::$SYMFONY_VERSION"
|
|
echo "::set-env name=COMPOSER_ROOT_VERSION::$SYMFONY_VERSION.x-dev"
|
|
|
|
- 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 --no-suggest --ansi
|
|
echo "::endgroup::"
|
|
echo "::group::install phpunit"
|
|
./phpunit install
|
|
echo "::endgroup::"
|
|
|
|
- name: Run tests
|
|
run: ./phpunit --group integration
|
|
env:
|
|
REDIS_HOST: localhost
|
|
REDIS_CLUSTER_HOSTS: 'localhost:7000 localhost:7001 localhost:7002 localhost:7003 localhost:7004 localhost:7005'
|
|
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
|
|
MONGODB_HOST: localhost
|
|
KAFKA_BROKER: localhost:9092
|
|
|
|
- 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 -e SYMFONY_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
|