202 lines
6.5 KiB
YAML
202 lines
6.5 KiB
YAML
#
|
|
# The MIT License
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
# of this software and associated documentation files (the "Software"), to deal
|
|
# in the Software without restriction, including without limitation the rights
|
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
# copies of the Software, and to permit persons to whom the Software is
|
|
# furnished to do so, subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in
|
|
# all copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
# THE SOFTWARE.
|
|
#
|
|
|
|
version: 2.1
|
|
|
|
commands:
|
|
influxdb-onboarding:
|
|
steps:
|
|
- run:
|
|
name: "Post onBoarding request to InfluxDB 2"
|
|
command: sh ./scripts/influxdb-onboarding.sh
|
|
prepare:
|
|
description: "Prepare environment to tests"
|
|
steps:
|
|
- checkout
|
|
- influxdb-onboarding
|
|
test:
|
|
parameters:
|
|
php-image:
|
|
type: string
|
|
xdebug-package:
|
|
type: string
|
|
steps:
|
|
- restore_cache:
|
|
name: Restoring Composer Cache
|
|
keys:
|
|
- composer-v3-{{ checksum "composer.json" }}-<< parameters.php-image >>
|
|
- composer-v3-{{ checksum "composer.json" }}
|
|
- composer-v3-
|
|
- run:
|
|
name: Install dependencies
|
|
command: |
|
|
composer install -n --prefer-dist
|
|
- run:
|
|
name: Install xdebug
|
|
command: |
|
|
sudo pecl install << parameters.xdebug-package >>
|
|
- run:
|
|
name: Run tests
|
|
command: |
|
|
export XDEBUG_MODE=coverage
|
|
vendor/bin/phpunit tests --coverage-clover=coverage.xml
|
|
- run:
|
|
name: Collecting coverage reports
|
|
command: |
|
|
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
|
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM
|
|
curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig
|
|
curl -s https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import
|
|
gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
|
|
shasum -a 256 -c codecov.SHA256SUM
|
|
chmod +x ./codecov
|
|
./codecov
|
|
- save_cache:
|
|
name: Saving Cache
|
|
key: composer-v3-{{ checksum "composer.json" }}-<< parameters.php-image >>
|
|
paths:
|
|
- vendor
|
|
when: always
|
|
storing-test-results:
|
|
steps:
|
|
- store_test_results:
|
|
path: build/
|
|
|
|
jobs:
|
|
tests-php:
|
|
parameters:
|
|
php-image:
|
|
type: string
|
|
default: &default-php-image "cimg/php:7.4"
|
|
influxdb-image:
|
|
type: string
|
|
default: &default-influxdb-image "influxdb:latest"
|
|
xdebug-package:
|
|
type: string
|
|
default: "xdebug-3.1.6"
|
|
docker:
|
|
- image: << parameters.php-image >>
|
|
- image: &influx-image << parameters.influxdb-image >>
|
|
environment:
|
|
INFLUXD_HTTP_BIND_ADDRESS: :8086
|
|
steps:
|
|
- prepare
|
|
- test:
|
|
php-image: << parameters.php-image >>
|
|
xdebug-package: << parameters.xdebug-package >>
|
|
- storing-test-results
|
|
tests-cURL:
|
|
docker:
|
|
- image: *default-php-image
|
|
- image: *default-influxdb-image
|
|
environment:
|
|
INFLUXD_HTTP_BIND_ADDRESS: :8086
|
|
steps:
|
|
- prepare
|
|
- restore_cache:
|
|
name: Restoring Composer Cache
|
|
keys:
|
|
- http-client-v1-{{ checksum "composer.json" }}
|
|
- http-client-v1-
|
|
- run:
|
|
name: Install dependencies
|
|
command: |
|
|
composer install -n --prefer-dist
|
|
composer remove --dev guzzlehttp/guzzle guzzlehttp/psr7
|
|
composer require --dev nyholm/psr7 php-http/curl-client
|
|
- run:
|
|
name: Run tests
|
|
command: |
|
|
vendor/bin/phpunit tests --group "integration"
|
|
- save_cache:
|
|
name: Saving Cache
|
|
key: http-client-v1-{{ checksum "composer.json" }}
|
|
paths:
|
|
- vendor
|
|
when: always
|
|
- storing-test-results
|
|
tests-windows:
|
|
machine:
|
|
image: "windows-server-2019-vs2019:stable"
|
|
resource_class: windows.medium
|
|
shell: bash
|
|
steps:
|
|
- checkout
|
|
- run: choco install php --version=7.3.15 --params '"/ThreadSafe /InstallDir:c:\tools\php"'
|
|
- run: cp ~/project/.circleci/php.ini /c/tools/php/
|
|
- run: /c/tools/php/php.exe -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
|
- run: /c/tools/php/php.exe composer-setup.php
|
|
- run: /c/tools/php/php.exe composer.phar install
|
|
- run: |
|
|
export PATH=/c/tools/php/:$PATH
|
|
./vendor/bin/phpunit --exclude-group "integration" --log-junit build/junit.xml
|
|
- storing-test-results
|
|
check-code-style:
|
|
docker:
|
|
- image: *default-php-image
|
|
steps:
|
|
- checkout
|
|
- run: |
|
|
mkdir -p tools/php-cs-fixer
|
|
composer require --working-dir=tools/php-cs-fixer friendsofphp/php-cs-fixer:2.18.7
|
|
tools/php-cs-fixer/vendor/bin/php-cs-fixer fix --dry-run --verbose --show-progress=estimating --using-cache=no --diff
|
|
|
|
workflows:
|
|
version: 2
|
|
build:
|
|
when:
|
|
not:
|
|
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
|
|
jobs:
|
|
- tests-php:
|
|
name: php-7.4
|
|
- tests-php:
|
|
name: php-8.0
|
|
php-image: "cimg/php:8.0"
|
|
- tests-php:
|
|
name: php-8.1
|
|
php-image: "cimg/php:8.1"
|
|
- tests-php:
|
|
name: php-8.2
|
|
php-image: "cimg/php:8.2"
|
|
xdebug-package: "xdebug"
|
|
- tests-php:
|
|
name: php-7.4-nightly
|
|
influxdb-image: "quay.io/influxdb/influxdb:nightly"
|
|
- tests-php:
|
|
name: php-7.3
|
|
php-image: "cimg/php:7.3"
|
|
- tests-php:
|
|
name: php-7.2
|
|
php-image: "cimg/php:7.2"
|
|
- tests-windows:
|
|
name: php-windows
|
|
- tests-cURL:
|
|
name: php-cURL-client
|
|
- check-code-style
|
|
|
|
nightly:
|
|
when:
|
|
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
|
|
jobs:
|
|
- tests-php
|