From b6d542153a855f2c5b67c541b1203b2567354636 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 9 Aug 2017 11:24:18 -0700 Subject: [PATCH 1/5] Add circle ci config for running tests across PHP versions --- Dockerfile | 43 ++++++++++++++++ circle.yml | 19 +++++++ cloudbuild.yaml | 14 +++++ scripts/dump_credentials.php | 30 +++++++++++ scripts/install_test_dependencies.sh | 76 ++++++++++++++++++++++++++++ scripts/run_test_suite.sh | 20 ++++++++ 6 files changed, 202 insertions(+) create mode 100644 Dockerfile create mode 100644 circle.yml create mode 100644 cloudbuild.yaml create mode 100644 scripts/dump_credentials.php create mode 100755 scripts/install_test_dependencies.sh create mode 100755 scripts/run_test_suite.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000000..c8bb026edb3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# Copyright 2017 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +ARG BASE_IMAGE +FROM $BASE_IMAGE + +RUN mkdir -p /build && \ + apt-get update -y && \ + apt-get install -y -q --no-install-recommends \ + build-essential \ + g++ \ + gcc \ + libc-dev \ + make \ + autoconf + +COPY . /build/ + +WORKDIR /build + +ENV TEST_PHP_ARGS="-q" \ + REPORT_EXIT_STATUS=1 + +RUN phpize && \ + ./configure --enable-stackdriver-trace && \ + make clean && \ + make && \ + make test && \ + make install + +RUN composer install && + vendor/bin/phpunit diff --git a/circle.yml b/circle.yml new file mode 100644 index 00000000000..9296470e5de --- /dev/null +++ b/circle.yml @@ -0,0 +1,19 @@ +machine: + timezone: America/Los_Angeles + environment: + GCLOUD_DIR: ${HOME}/gcloud + PATH: ${GCLOUD_DIR}/google-cloud-sdk/bin:${PATH} + CLOUDSDK_CORE_DISABLE_PROMPTS: 1 + CLOUDSDK_ACTIVE_CONFIG_NAME: opencensus-php + TEST_BUILD_DIR: ${HOME} + PHP_DOCKER_GOOGLE_CREDENTIALS: ${HOME}/credentials.json + GOOGLE_PROJECT_ID: php-stackdriver + TAG: circle-${CIRCLE_BUILD_NUM} + +dependencies: + override: + - scripts/install_test_dependencies.sh + +test: + override: + - scripts/run_test_suite.sh diff --git a/cloudbuild.yaml b/cloudbuild.yaml new file mode 100644 index 00000000000..a5e67c064ac --- /dev/null +++ b/cloudbuild.yaml @@ -0,0 +1,14 @@ +# This cloudbuild.yaml is used to test the php extension against multiple versions of php +steps: + - name: gcr.io/cloud-builders/docker + args: ['build', '--build-arg', 'BASE_IMAGE=gcr.io/google-appengine/php71', '.'] + waitFor: ['-'] + id: php71 + - name: gcr.io/cloud-builders/docker + args: ['build', '--build-arg', 'BASE_IMAGE=gcr.io/google-appengine/php70', '.'] + waitFor: ['-'] + id: php70 + - name: gcr.io/cloud-builders/docker + args: ['build', '--build-arg', 'BASE_IMAGE=gcr.io/php-mvm-a/php72:alpha3', '.'] + waitFor: ['-'] + id: php72 diff --git a/scripts/dump_credentials.php b/scripts/dump_credentials.php new file mode 100644 index 00000000000..6c700e4cb20 --- /dev/null +++ b/scripts/dump_credentials.php @@ -0,0 +1,30 @@ + Date: Wed, 9 Aug 2017 12:20:02 -0700 Subject: [PATCH 2/5] Fix test namespaces --- tests/unit/Trace/Reporter/EchoReporterTest.php | 2 +- tests/unit/Trace/Reporter/FileReporterTest.php | 2 +- tests/unit/Trace/Reporter/LoggerReporterTest.php | 2 +- tests/unit/Trace/RequestHandlerTest.php | 2 +- tests/unit/Trace/RequestTracerTest.php | 2 +- tests/unit/Trace/Sampler/QpsSamplerTest.php | 2 +- tests/unit/Trace/Sampler/RandomSamplerTest.php | 2 +- tests/unit/Trace/Sampler/SamplerFactoryTest.php | 2 +- tests/unit/Trace/TraceContextTest.php | 2 +- tests/unit/Trace/TraceSpanTest.php | 2 +- tests/unit/Trace/TraceTest.php | 2 +- tests/unit/Trace/Tracer/ContextTracerTest.php | 2 +- tests/unit/Trace/Tracer/ExtentionTracerTest.php | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/unit/Trace/Reporter/EchoReporterTest.php b/tests/unit/Trace/Reporter/EchoReporterTest.php index a44462324b6..6cbca516bd1 100644 --- a/tests/unit/Trace/Reporter/EchoReporterTest.php +++ b/tests/unit/Trace/Reporter/EchoReporterTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Reporter; +namespace OpenCensus\Tests\Unit\Trace\Reporter; use OpenCensus\Trace\Reporter\EchoReporter; use OpenCensus\Trace\TraceContext; diff --git a/tests/unit/Trace/Reporter/FileReporterTest.php b/tests/unit/Trace/Reporter/FileReporterTest.php index 5607aa1898c..7df579bd1e3 100644 --- a/tests/unit/Trace/Reporter/FileReporterTest.php +++ b/tests/unit/Trace/Reporter/FileReporterTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Reporter; +namespace OpenCensus\Tests\Unit\Trace\Reporter; use OpenCensus\Trace\Reporter\FileReporter; use OpenCensus\Trace\TraceContext; diff --git a/tests/unit/Trace/Reporter/LoggerReporterTest.php b/tests/unit/Trace/Reporter/LoggerReporterTest.php index 5efde8adc4e..9dafab39a90 100644 --- a/tests/unit/Trace/Reporter/LoggerReporterTest.php +++ b/tests/unit/Trace/Reporter/LoggerReporterTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Reporter; +namespace OpenCensus\Tests\Unit\Trace\Reporter; use Psr\Log\LoggerInterface; use OpenCensus\Trace\Reporter\LoggerReporter; diff --git a/tests/unit/Trace/RequestHandlerTest.php b/tests/unit/Trace/RequestHandlerTest.php index 9ebdbbb92c5..fb229092553 100644 --- a/tests/unit/Trace/RequestHandlerTest.php +++ b/tests/unit/Trace/RequestHandlerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace; +namespace OpenCensus\Tests\Unit\Trace; use OpenCensus\Trace\TraceSpan; use OpenCensus\Trace\RequestHandler; diff --git a/tests/unit/Trace/RequestTracerTest.php b/tests/unit/Trace/RequestTracerTest.php index e3c10f5ac0d..6ae8daf47d2 100644 --- a/tests/unit/Trace/RequestTracerTest.php +++ b/tests/unit/Trace/RequestTracerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace; +namespace OpenCensus\Tests\Unit\Trace; use OpenCensus\Trace\Reporter\ReporterInterface; use OpenCensus\Trace\RequestTracer; diff --git a/tests/unit/Trace/Sampler/QpsSamplerTest.php b/tests/unit/Trace/Sampler/QpsSamplerTest.php index 6c153b50420..3655baca6ae 100644 --- a/tests/unit/Trace/Sampler/QpsSamplerTest.php +++ b/tests/unit/Trace/Sampler/QpsSamplerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Sampler; +namespace OpenCensus\Tests\Unit\Trace\Sampler; use OpenCensus\Trace\Sampler\QpsSampler; use Psr\Cache\CacheItemInterface; diff --git a/tests/unit/Trace/Sampler/RandomSamplerTest.php b/tests/unit/Trace/Sampler/RandomSamplerTest.php index 85d7ae28072..c8976e857f9 100644 --- a/tests/unit/Trace/Sampler/RandomSamplerTest.php +++ b/tests/unit/Trace/Sampler/RandomSamplerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Sampler; +namespace OpenCensus\Tests\Unit\Trace\Sampler; use OpenCensus\Trace\Sampler\RandomSampler; diff --git a/tests/unit/Trace/Sampler/SamplerFactoryTest.php b/tests/unit/Trace/Sampler/SamplerFactoryTest.php index e1145a0418f..7221b1c6af5 100644 --- a/tests/unit/Trace/Sampler/SamplerFactoryTest.php +++ b/tests/unit/Trace/Sampler/SamplerFactoryTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Sampler; +namespace OpenCensus\Tests\Unit\Trace\Sampler; use OpenCensus\Trace\Sampler\SamplerFactory; use OpenCensus\Trace\Sampler\SamplerInterface; diff --git a/tests/unit/Trace/TraceContextTest.php b/tests/unit/Trace/TraceContextTest.php index f0f7707ca2c..a9dbc915b77 100644 --- a/tests/unit/Trace/TraceContextTest.php +++ b/tests/unit/Trace/TraceContextTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace; +namespace OpenCensus\Tests\Unit\Trace; use OpenCensus\Trace\TraceContext; diff --git a/tests/unit/Trace/TraceSpanTest.php b/tests/unit/Trace/TraceSpanTest.php index a04050ccf9e..bf43dd663a5 100644 --- a/tests/unit/Trace/TraceSpanTest.php +++ b/tests/unit/Trace/TraceSpanTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace; +namespace OpenCensus\Tests\Unit\Trace; use OpenCensus\Trace\TraceSpan; diff --git a/tests/unit/Trace/TraceTest.php b/tests/unit/Trace/TraceTest.php index 366cc461451..bbd33bb2920 100644 --- a/tests/unit/Trace/TraceTest.php +++ b/tests/unit/Trace/TraceTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace; +namespace OpenCensus\Tests\Unit\Trace; use OpenCensus\Trace\Trace; use OpenCensus\Trace\TraceSpan; diff --git a/tests/unit/Trace/Tracer/ContextTracerTest.php b/tests/unit/Trace/Tracer/ContextTracerTest.php index e33d38febdb..8e6bee4b669 100644 --- a/tests/unit/Trace/Tracer/ContextTracerTest.php +++ b/tests/unit/Trace/Tracer/ContextTracerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Tracer; +namespace OpenCensus\Tests\Unit\Trace\Tracer; use OpenCensus\Trace\TraceContext; use OpenCensus\Trace\Tracer\ContextTracer; diff --git a/tests/unit/Trace/Tracer/ExtentionTracerTest.php b/tests/unit/Trace/Tracer/ExtentionTracerTest.php index 9611d062ff3..639ad1486f8 100644 --- a/tests/unit/Trace/Tracer/ExtentionTracerTest.php +++ b/tests/unit/Trace/Tracer/ExtentionTracerTest.php @@ -15,7 +15,7 @@ * limitations under the License. */ -namespace Google\Cloud\Tests\Unit\Trace\Tracer; +namespace OpenCensus\Tests\Unit\Trace\Tracer; use OpenCensus\Trace\TraceContext; use OpenCensus\Trace\Tracer\ExtensionTracer; From 9f7f20d4dd52666c650a3eb3c3e09a3181c9e453 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 9 Aug 2017 13:07:26 -0700 Subject: [PATCH 3/5] Add PHP code sniffer to tests --- Dockerfile | 2 ++ composer.json | 3 ++- phpcs-ruleset.xml | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 phpcs-ruleset.xml diff --git a/Dockerfile b/Dockerfile index c8bb026edb3..ab4b79dc4f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,5 +39,7 @@ RUN phpize && \ make test && \ make install +RUN vendor/bin/phpcs --standard=./phpcs-ruleset.xml + RUN composer install && vendor/bin/phpunit diff --git a/composer.json b/composer.json index 1dd891210aa..68ef29c6572 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,8 @@ "cache/adapter-common": "^1.0" }, "require-dev": { - "phpunit/phpunit": "4.8.*" + "phpunit/phpunit": "4.8.*", + "squizlabs/php_codesniffer": "2.*" }, "suggest": { "cache/apcu-adapter": "Enable QpsSampler to use apcu cache.", diff --git a/phpcs-ruleset.xml b/phpcs-ruleset.xml new file mode 100644 index 00000000000..b4467ac3fc5 --- /dev/null +++ b/phpcs-ruleset.xml @@ -0,0 +1,5 @@ + + + + src + From dd92233089ef81a59e368035a35ff8a9c9595c8a Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 9 Aug 2017 13:08:36 -0700 Subject: [PATCH 4/5] Fix Dockerfile for running php tests --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ab4b79dc4f3..827f26d60e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,6 @@ RUN phpize && \ make test && \ make install -RUN vendor/bin/phpcs --standard=./phpcs-ruleset.xml - -RUN composer install && +RUN composer install && \ + vendor/bin/phpcs --standard=./phpcs-ruleset.xml && \ vendor/bin/phpunit From c3400947dfcd3b3529bfe13e2fc3500b5b9f7630 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 9 Aug 2017 13:14:29 -0700 Subject: [PATCH 5/5] Fix directory for testing the extension --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 827f26d60e4..cc5112a3611 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,7 +27,7 @@ RUN mkdir -p /build && \ COPY . /build/ -WORKDIR /build +WORKDIR /build/ext ENV TEST_PHP_ARGS="-q" \ REPORT_EXIT_STATUS=1 @@ -39,6 +39,8 @@ RUN phpize && \ make test && \ make install +WORKDIR /build + RUN composer install && \ vendor/bin/phpcs --standard=./phpcs-ruleset.xml && \ vendor/bin/phpunit