diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..16041a1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,45 @@ +name: CI + +on: + push: + pull_request: + +jobs: + PHPUnit: + name: PHPUnit (PHP ${{ matrix.php }}) + runs-on: ubuntu-20.04 + strategy: + matrix: + php: + - 7.4 + - 7.3 + - 7.2 + - 7.1 + - 7.0 + - 5.6 + - 5.5 + - 5.4 + steps: + - uses: actions/checkout@v2 + - uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: xdebug + - run: composer install + - run: docker run -d --name mysql --net=host -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_DATABASE=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test mysql:5 + - run: bash tests/wait-for-mysql.sh + - run: MYSQL_USER=test MYSQL_PASSWORD=test vendor/bin/phpunit + + PHPUnit-hhvm: + name: PHPUnit (HHVM) + runs-on: ubuntu-18.04 + continue-on-error: true + steps: + - uses: actions/checkout@v2 + - uses: azjezz/setup-hhvm@v1 + with: + version: lts-3.30 + - run: hhvm $(which composer) require phpunit/phpunit:^5 --dev --no-interaction + - run: docker run -d --name mysql --net=host -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_DATABASE=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test mysql:5 + - run: bash tests/wait-for-mysql.sh + - run: MYSQL_USER=test MYSQL_PASSWORD=test hhvm vendor/bin/phpunit diff --git a/.gitignore b/.gitignore index d1502b0..c8153b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -vendor/ -composer.lock +/composer.lock +/vendor/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f7e6f9..0000000 --- a/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - 7.2 - - 7.3 -# - hhvm # requires legacy phpunit & ignore errors, see below - -# lock distro so new future defaults will not break the build -dist: trusty - -matrix: - include: - - php: hhvm - install: composer require phpunit/phpunit:^5 --dev --no-interaction - allow_failures: - - php: hhvm - -services: - - mysql - -sudo: false - -install: - - composer install --no-interaction - -before_script: - - mysql -e 'CREATE DATABASE IF NOT EXISTS test;' - -script: - - DB_USER=root DB_PASSWD= ./vendor/bin/phpunit --coverage-text diff --git a/README.md b/README.md index 05cbaab..721a62d 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MySQL -[![Build Status](https://travis-ci.org/friends-of-reactphp/mysql.svg?branch=master)](https://travis-ci.org/friends-of-reactphp/mysql) +[![CI status](https://github.com/friends-of-reactphp/mysql/workflows/CI/badge.svg)](https://github.com/friends-of-reactphp/mysql/actions) Async MySQL database client for [ReactPHP](https://reactphp.org/). diff --git a/tests/wait-for-mysql.sh b/tests/wait-for-mysql.sh new file mode 100644 index 0000000..00a39e3 --- /dev/null +++ b/tests/wait-for-mysql.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +CONTAINER="mysql" +USERNAME="test" +PASSWORD="test" +while ! docker exec $CONTAINER mysql --user=$USERNAME --password=$PASSWORD -e "SELECT 1" >/dev/null 2>&1; do + sleep 1 +done