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 '^ *\"dev-master\". *\"[1-9]' | grep -o '[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