diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..27bd46a24 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,99 @@ +name: tests + +on: + push: + pull_request: + +jobs: + linux_tests: + runs-on: ubuntu-latest + + strategy: + fail-fast: true + matrix: + php: [7.3, 7.4, 8.0] + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, fileinfo, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd, ldap + tools: composer:v2 + coverage: none + + - name: Setup problem matchers + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Setup composer + run: | + cp composer.json-dist composer.json + composer require "kolab/net_ldap3:~1.1.1" --no-update + + - name: Fix PHPUnit for PHP8 + uses: nick-invision/retry@v1 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer config platform.php 7.4 + if: matrix.php >= 8 + + - name: Install dependencies + uses: nick-invision/retry@v1 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer --prefer-dist --no-interaction --no-progress + + - name: Execute tests + run: vendor/bin/phpunit -c tests/phpunit.xml --verbose + + windows_tests: + runs-on: windows-latest + + strategy: + fail-fast: true + matrix: + php: [7.3, 7.4, 8.0] + stability: [prefer-stable] + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, gd, fileinfo, ldap + tools: composer:v2 + coverage: none + + - name: Setup problem matchers + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Setup composer + run: | + copy composer.json-dist composer.json + composer require "kolab/net_ldap3:~1.1.1" --no-update + + - name: Fix PHPUnit for PHP8 + uses: nick-invision/retry@v1 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer config platform.php 7.4 + if: matrix.php >= 8 + + - name: Install dependencies + uses: nick-invision/retry@v1 + with: + timeout_minutes: 5 + max_attempts: 5 + command: composer --prefer-dist --no-interaction --no-progress + + - name: Execute tests + run: vendor/bin/phpunit -c tests/phpunit.xml --verbose