aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Xiao <xfxyjwf@gmail.com>2018-07-15 18:16:40 -0700
committerFeng Xiao <xfxyjwf@gmail.com>2018-07-15 21:03:55 -0700
commit9209a41f8294f6da8556266f3cacb83e5ad03e75 (patch)
tree66e6aa4fcc9baa31b89094c8621ed588660756b2
parent4d0fbd173780e368f4fad84fd585d110f828a01b (diff)
downloadprotobuf-9209a41f8294f6da8556266f3cacb83e5ad03e75.tar.gz
protobuf-9209a41f8294f6da8556266f3cacb83e5ad03e75.tar.bz2
protobuf-9209a41f8294f6da8556266f3cacb83e5ad03e75.zip
Add protoc release script for Linux build.
-rwxr-xr-xkokoro/release/protoc/linux/build.sh30
-rw-r--r--kokoro/release/protoc/linux/release.cfg7
-rwxr-xr-xprotoc-artifacts/build-protoc.sh4
3 files changed, 39 insertions, 2 deletions
diff --git a/kokoro/release/protoc/linux/build.sh b/kokoro/release/protoc/linux/build.sh
new file mode 100755
index 00000000..0b6d55b1
--- /dev/null
+++ b/kokoro/release/protoc/linux/build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -x
+
+# Change to repo root.
+cd $(dirname $0)/../../../..
+
+# Use docker image to build linux artifacts.
+DOCKER_IMAGE_NAME=protobuf/protoc_$(sha1sum protoc-artifacts/Dockerfile | cut -f1 -d " ")
+docker pull $DOCKER_IMAGE_NAME
+
+docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
+ bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
+ linux x86_64 protoc || {
+ echo "Failed to build protoc for linux + x86_64."
+ exit 1
+}
+
+docker run -v $(pwd):/var/local/protobuf --rm $DOCKER_IMAGE_NAME \
+ bash -l /var/local/protobuf/protoc-artifacts/build-protoc.sh \
+ linux x86_32 protoc || {
+ echo "Failed to build protoc for linux + x86_32."
+ exit 1
+}
+
+# Cross-build for some architectures.
+sudo apt install g++-aarch64-linux-gnu
+# TODO(xiaofeng): It currently fails with "machine `aarch64' not recognized"
+# error.
+# protoc-artifacts/build-protoc.sh linux aarch_64 protoc
diff --git a/kokoro/release/protoc/linux/release.cfg b/kokoro/release/protoc/linux/release.cfg
new file mode 100644
index 00000000..4d8b7b61
--- /dev/null
+++ b/kokoro/release/protoc/linux/release.cfg
@@ -0,0 +1,7 @@
+build_file: "protobuf/kokoro/release/protoc/linux/build.sh"
+
+action {
+ define_artifacts {
+ regex: "**/protoc.exe"
+ }
+}
diff --git a/protoc-artifacts/build-protoc.sh b/protoc-artifacts/build-protoc.sh
index 076e6b48..7e1d4a89 100755
--- a/protoc-artifacts/build-protoc.sh
+++ b/protoc-artifacts/build-protoc.sh
@@ -38,7 +38,7 @@ case $MAKE_TARGET in
protoc)
;;
*)
- echo "Target ""$TARGET"" invalid."
+ echo "Target ""$MAKE_TARGET"" invalid."
exit 1
esac
@@ -174,7 +174,7 @@ checkDependencies ()
}
############################################################################
-echo "Building protoc, OS=$OS ARCH=$ARCH TARGET=$TARGET"
+echo "Building protoc, OS=$OS ARCH=$ARCH TARGET=$MAKE_TARGET"
CONFIGURE_ARGS="--disable-shared"