mirror of https://github.com/grpc/grpc.git
Merge branch 'master' of https://github.com/grpc/grpc into interop_server_split
commit
64f8d09ca0
58 changed files with 1477 additions and 902 deletions
@ -0,0 +1,24 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict> |
||||
<key>CFBundleDevelopmentRegion</key> |
||||
<string>en</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>BNDL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>1.0</string> |
||||
<key>CFBundleSignature</key> |
||||
<string>????</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>1</string> |
||||
</dict> |
||||
</plist> |
@ -0,0 +1,50 @@ |
||||
/* |
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#import <GRPCClient/GRPCCall+Tests.h> |
||||
|
||||
#import "InteropTests.h" |
||||
|
||||
static NSString * const kRemoteSSLHost = @"grpc-test.sandbox.googleapis.com"; |
||||
|
||||
/** Tests in InteropTests.m, sending the RPCs to a remote SSL server. */ |
||||
@interface InteropTestsRemoteWithCronet : InteropTests |
||||
@end |
||||
|
||||
@implementation InteropTestsRemoteWithCronet |
||||
|
||||
+ (NSString *)host { |
||||
return kRemoteSSLHost; |
||||
} |
||||
|
||||
@end |
@ -0,0 +1,104 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Scheme |
||||
LastUpgradeVersion = "0730" |
||||
version = "1.3"> |
||||
<BuildAction |
||||
parallelizeBuildables = "YES" |
||||
buildImplicitDependencies = "YES"> |
||||
<BuildActionEntries> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "NO" |
||||
buildForArchiving = "NO" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "5EE84BF01D4717E40050C6CC" |
||||
BuildableName = "InteropTestsRemoteWithCronet.xctest" |
||||
BlueprintName = "InteropTestsRemoteWithCronet" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
</BuildActionEntries> |
||||
</BuildAction> |
||||
<TestAction |
||||
buildConfiguration = "Debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
shouldUseLaunchSchemeArgsEnv = "YES"> |
||||
<Testables> |
||||
<TestableReference |
||||
skipped = "NO"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "5EE84BF01D4717E40050C6CC" |
||||
BuildableName = "InteropTestsRemoteWithCronet.xctest" |
||||
BlueprintName = "InteropTestsRemoteWithCronet" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
<SkippedTests> |
||||
<Test |
||||
Identifier = "InteropTests"> |
||||
</Test> |
||||
</SkippedTests> |
||||
</TestableReference> |
||||
</Testables> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "5EE84BF01D4717E40050C6CC" |
||||
BuildableName = "InteropTestsRemoteWithCronet.xctest" |
||||
BlueprintName = "InteropTestsRemoteWithCronet" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</TestAction> |
||||
<LaunchAction |
||||
buildConfiguration = "Debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
launchStyle = "0" |
||||
useCustomWorkingDirectory = "NO" |
||||
ignoresPersistentStateOnLaunch = "NO" |
||||
debugDocumentVersioning = "YES" |
||||
debugServiceExtension = "internal" |
||||
allowLocationSimulation = "YES"> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "5EE84BF01D4717E40050C6CC" |
||||
BuildableName = "InteropTestsRemoteWithCronet.xctest" |
||||
BlueprintName = "InteropTestsRemoteWithCronet" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<AdditionalOptions> |
||||
</AdditionalOptions> |
||||
</LaunchAction> |
||||
<ProfileAction |
||||
buildConfiguration = "Release" |
||||
shouldUseLaunchSchemeArgsEnv = "YES" |
||||
savedToolIdentifier = "" |
||||
useCustomWorkingDirectory = "NO" |
||||
debugDocumentVersioning = "YES"> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "5EE84BF01D4717E40050C6CC" |
||||
BuildableName = "InteropTestsRemoteWithCronet.xctest" |
||||
BlueprintName = "InteropTestsRemoteWithCronet" |
||||
ReferencedContainer = "container:Tests.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
</ProfileAction> |
||||
<AnalyzeAction |
||||
buildConfiguration = "Debug"> |
||||
</AnalyzeAction> |
||||
<ArchiveAction |
||||
buildConfiguration = "Release" |
||||
revealArchiveInOrganizer = "YES"> |
||||
</ArchiveAction> |
||||
</Scheme> |
@ -0,0 +1,84 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2016, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
|
||||
#ifndef PHP7_WRAPPER_GRPC_H |
||||
#define PHP7_WRAPPER_GRPC_H |
||||
|
||||
#if PHP_MAJOR_VERSION < 7 |
||||
|
||||
#define php_grpc_int int |
||||
#define php_grpc_long long |
||||
#define php_grpc_ulong ulong |
||||
#define php_grpc_add_property_string(arg, name, context, b) \ |
||||
add_property_string(arg, name, context, b) |
||||
#define php_grpc_add_property_stringl(res, name, str, len, b) \ |
||||
add_property_stringl(res, name, str, len, b) |
||||
#define php_grpc_add_next_index_stringl(data, str, len, b) \ |
||||
add_next_index_stringl(data, str, len, b) |
||||
|
||||
#define PHP_GRPC_RETURN_STRING(val, dup) RETURN_STRING(val, dup) |
||||
#define PHP_GRPC_MAKE_STD_ZVAL(pzv) MAKE_STD_ZVAL(pzv) |
||||
|
||||
#define PHP_GRPC_WRAP_OBJECT_START(name) \ |
||||
typedef struct name { \
|
||||
zend_object std; |
||||
#define PHP_GRPC_WRAP_OBJECT_END(name) \ |
||||
} name; |
||||
|
||||
#else |
||||
|
||||
#define php_grpc_int size_t |
||||
#define php_grpc_long zend_long |
||||
#define php_grpc_ulong zend_ulong |
||||
#define php_grpc_add_property_string(arg, name, context, b) \ |
||||
add_property_string(arg, name, context) |
||||
#define php_grpc_add_property_stringl(res, name, str, len, b) \ |
||||
add_property_stringl(res, name, str, len) |
||||
#define php_grpc_add_next_index_stringl(data, str, len, b) \ |
||||
add_next_index_stringl(data, str, len) |
||||
|
||||
#define PHP_GRPC_RETURN_STRING(val, dup) RETURN_STRING(val) |
||||
#define PHP_GRPC_MAKE_STD_ZVAL(pzv) \ |
||||
zval _stack_zval_##pzv; \
|
||||
pzv = &(_stack_zval_##pzv) |
||||
|
||||
#define PHP_GRPC_WRAP_OBJECT_START(name) \ |
||||
typedef struct name { |
||||
#define PHP_GRPC_WRAP_OBJECT_END(name) \ |
||||
zend_object std; \
|
||||
} name; |
||||
|
||||
#endif /* PHP_MAJOR_VERSION */ |
||||
|
||||
#endif /* PHP7_WRAPPER_GRPC_H */ |
@ -0,0 +1,37 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2016, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
FROM debian:jessie |
||||
|
||||
<%include file="../../php7_deps.include"/> |
||||
<%include file="../../ruby_deps.include"/> |
||||
<%include file="../../run_tests_addons.include"/> |
||||
<%include file="../../php_common_deps.include"/> |
@ -0,0 +1,45 @@ |
||||
#================= |
||||
# PHP7 dependencies |
||||
|
||||
# Install Git and basic packages. |
||||
RUN apt-get update && apt-get install -y ${'\\'} |
||||
autoconf ${'\\'} |
||||
automake ${'\\'} |
||||
build-essential ${'\\'} |
||||
ccache ${'\\'} |
||||
curl ${'\\'} |
||||
git ${'\\'} |
||||
libcurl4-openssl-dev ${'\\'} |
||||
libgmp-dev ${'\\'} |
||||
libgmp3-dev ${'\\'} |
||||
libssl-dev ${'\\'} |
||||
libtool ${'\\'} |
||||
libxml2-dev ${'\\'} |
||||
pkg-config ${'\\'} |
||||
re2c ${'\\'} |
||||
time ${'\\'} |
||||
unzip ${'\\'} |
||||
wget ${'\\'} |
||||
zip && apt-get clean |
||||
|
||||
# Install other dependencies |
||||
RUN ln -sf /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h |
||||
RUN wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz -O /var/local/bison-2.6.4.tar.gz |
||||
RUN cd /var/local ${'\\'} |
||||
&& tar -zxvf bison-2.6.4.tar.gz ${'\\'} |
||||
&& cd /var/local/bison-2.6.4 ${'\\'} |
||||
&& ./configure ${'\\'} |
||||
&& make ${'\\'} |
||||
&& make install |
||||
|
||||
# Compile PHP7 from source |
||||
RUN git clone https://github.com/php/php-src /var/local/git/php-src |
||||
RUN cd /var/local/git/php-src ${'\\'} |
||||
&& git checkout PHP-7.0.9 ${'\\'} |
||||
&& ./buildconf --force ${'\\'} |
||||
&& ./configure ${'\\'} |
||||
--with-gmp ${'\\'} |
||||
--with-openssl ${'\\'} |
||||
--with-zlib ${'\\'} |
||||
&& make ${'\\'} |
||||
&& make install |
@ -0,0 +1,21 @@ |
||||
# ronn: a ruby tool used to convert markdown to man pages, used during the |
||||
# install of Protobuf extensions |
||||
# |
||||
# rake: a ruby version of make used to build the PHP Protobuf extension |
||||
RUN /bin/bash -l -c "rvm all do gem install ronn rake" |
||||
|
||||
# Install composer |
||||
RUN curl -sS https://getcomposer.org/installer | php |
||||
RUN mv composer.phar /usr/local/bin/composer |
||||
|
||||
# Download the patched PHP protobuf so that PHP gRPC clients can be generated |
||||
# from proto3 schemas. |
||||
RUN git clone https://github.com/stanley-cheung/Protobuf-PHP.git /var/local/git/protobuf-php |
||||
|
||||
RUN /bin/bash -l -c "rvm use ruby-2.1 ${'\\'} |
||||
&& cd /var/local/git/protobuf-php ${'\\'} |
||||
&& rvm all do rake pear:package version=1.0 ${'\\'} |
||||
&& pear install Protobuf-1.0.tgz" |
||||
|
||||
# Define the default command. |
||||
CMD ["bash"] |
@ -0,0 +1,38 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
# Copyright 2016, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
FROM debian:jessie |
||||
|
||||
<%include file="../../php7_deps.include"/> |
||||
<%include file="../../python_deps.include"/> |
||||
<%include file="../../run_tests_addons.include"/> |
||||
# Define the default command. |
||||
CMD ["bash"] |
@ -0,0 +1,125 @@ |
||||
# Copyright 2016, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
FROM debian:jessie |
||||
|
||||
#================= |
||||
# PHP7 dependencies |
||||
|
||||
# Install Git and basic packages. |
||||
RUN apt-get update && apt-get install -y \ |
||||
autoconf \ |
||||
automake \ |
||||
build-essential \ |
||||
ccache \ |
||||
curl \ |
||||
git \ |
||||
libcurl4-openssl-dev \ |
||||
libgmp-dev \ |
||||
libgmp3-dev \ |
||||
libssl-dev \ |
||||
libtool \ |
||||
libxml2-dev \ |
||||
pkg-config \ |
||||
re2c \ |
||||
time \ |
||||
unzip \ |
||||
wget \ |
||||
zip && apt-get clean |
||||
|
||||
# Install other dependencies |
||||
RUN ln -sf /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h |
||||
RUN wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz -O /var/local/bison-2.6.4.tar.gz |
||||
RUN cd /var/local \ |
||||
&& tar -zxvf bison-2.6.4.tar.gz \ |
||||
&& cd /var/local/bison-2.6.4 \ |
||||
&& ./configure \ |
||||
&& make \ |
||||
&& make install |
||||
|
||||
# Compile PHP7 from source |
||||
RUN git clone https://github.com/php/php-src /var/local/git/php-src |
||||
RUN cd /var/local/git/php-src \ |
||||
&& git checkout PHP-7.0.9 \ |
||||
&& ./buildconf --force \ |
||||
&& ./configure \ |
||||
--with-gmp \ |
||||
--with-openssl \ |
||||
--with-zlib \ |
||||
&& make \ |
||||
&& make install |
||||
|
||||
#================== |
||||
# Ruby dependencies |
||||
|
||||
# Install rvm |
||||
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 |
||||
RUN \curl -sSL https://get.rvm.io | bash -s stable |
||||
|
||||
# Install Ruby 2.1 |
||||
RUN /bin/bash -l -c "rvm install ruby-2.1" |
||||
RUN /bin/bash -l -c "rvm use --default ruby-2.1" |
||||
RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc" |
||||
RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc" |
||||
RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" |
||||
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" |
||||
|
||||
# Prepare ccache |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/g++ |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/cc |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/c++ |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/clang |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ |
||||
|
||||
|
||||
RUN mkdir /var/local/jenkins |
||||
|
||||
# ronn: a ruby tool used to convert markdown to man pages, used during the |
||||
# install of Protobuf extensions |
||||
# |
||||
# rake: a ruby version of make used to build the PHP Protobuf extension |
||||
RUN /bin/bash -l -c "rvm all do gem install ronn rake" |
||||
|
||||
# Install composer |
||||
RUN curl -sS https://getcomposer.org/installer | php |
||||
RUN mv composer.phar /usr/local/bin/composer |
||||
|
||||
# Download the patched PHP protobuf so that PHP gRPC clients can be generated |
||||
# from proto3 schemas. |
||||
RUN git clone https://github.com/stanley-cheung/Protobuf-PHP.git /var/local/git/protobuf-php |
||||
|
||||
RUN /bin/bash -l -c "rvm use ruby-2.1 \ |
||||
&& cd /var/local/git/protobuf-php \ |
||||
&& rvm all do rake pear:package version=1.0 \ |
||||
&& pear install Protobuf-1.0.tgz" |
||||
|
||||
# Define the default command. |
||||
CMD ["bash"] |
||||
|
@ -0,0 +1,52 @@ |
||||
#!/bin/bash |
||||
# Copyright 2016, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
# |
||||
# Builds PHP interop server and client in a base image. |
||||
set -ex |
||||
|
||||
mkdir -p /var/local/git |
||||
git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc |
||||
|
||||
# copy service account keys if available |
||||
cp -r /var/local/jenkins/service_account $HOME || true |
||||
|
||||
cd /var/local/git/grpc |
||||
rvm --default use ruby-2.1 |
||||
|
||||
# gRPC core and protobuf need to be installed |
||||
make install |
||||
|
||||
(cd src/php/ext/grpc && phpize && ./configure && make) |
||||
|
||||
(cd third_party/protobuf && make install) |
||||
|
||||
(cd src/php && composer install) |
||||
|
||||
(cd src/php && protoc-gen-php -i tests/interop/ -o tests/interop/ tests/interop/test.proto) |
@ -0,0 +1,105 @@ |
||||
# Copyright 2016, Google Inc. |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are |
||||
# met: |
||||
# |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above |
||||
# copyright notice, this list of conditions and the following disclaimer |
||||
# in the documentation and/or other materials provided with the |
||||
# distribution. |
||||
# * Neither the name of Google Inc. nor the names of its |
||||
# contributors may be used to endorse or promote products derived from |
||||
# this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
FROM debian:jessie |
||||
|
||||
#================= |
||||
# PHP7 dependencies |
||||
|
||||
# Install Git and basic packages. |
||||
RUN apt-get update && apt-get install -y \ |
||||
autoconf \ |
||||
automake \ |
||||
build-essential \ |
||||
ccache \ |
||||
curl \ |
||||
git \ |
||||
libcurl4-openssl-dev \ |
||||
libgmp-dev \ |
||||
libgmp3-dev \ |
||||
libssl-dev \ |
||||
libtool \ |
||||
libxml2-dev \ |
||||
pkg-config \ |
||||
re2c \ |
||||
time \ |
||||
unzip \ |
||||
wget \ |
||||
zip && apt-get clean |
||||
|
||||
# Install other dependencies |
||||
RUN ln -sf /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h |
||||
RUN wget http://ftp.gnu.org/gnu/bison/bison-2.6.4.tar.gz -O /var/local/bison-2.6.4.tar.gz |
||||
RUN cd /var/local \ |
||||
&& tar -zxvf bison-2.6.4.tar.gz \ |
||||
&& cd /var/local/bison-2.6.4 \ |
||||
&& ./configure \ |
||||
&& make \ |
||||
&& make install |
||||
|
||||
# Compile PHP7 from source |
||||
RUN git clone https://github.com/php/php-src /var/local/git/php-src |
||||
RUN cd /var/local/git/php-src \ |
||||
&& git checkout PHP-7.0.9 \ |
||||
&& ./buildconf --force \ |
||||
&& ./configure \ |
||||
--with-gmp \ |
||||
--with-openssl \ |
||||
--with-zlib \ |
||||
&& make \ |
||||
&& make install |
||||
|
||||
#==================== |
||||
# Python dependencies |
||||
|
||||
# Install dependencies |
||||
|
||||
RUN apt-get update && apt-get install -y \ |
||||
python-all-dev \ |
||||
python3-all-dev \ |
||||
python-pip |
||||
|
||||
# Install Python packages from PyPI |
||||
RUN pip install pip --upgrade |
||||
RUN pip install virtualenv |
||||
RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 six==1.10.0 |
||||
|
||||
# Prepare ccache |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/g++ |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/cc |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/c++ |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/clang |
||||
RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ |
||||
|
||||
|
||||
RUN mkdir /var/local/jenkins |
||||
|
||||
# Define the default command. |
||||
CMD ["bash"] |
Loading…
Reference in new issue