aboutsummaryrefslogtreecommitdiff
path: root/kokoro/release/protoc/linux/build.sh
blob: 6ecfc914a01cc237e724db084a132cff3f5eef62 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

set -x

# Change to repo root.
cd $(dirname $0)/../../../..

# Initialize any submodules.
git submodule update --init --recursive

# Generate the configure script.
./autogen.sh

# 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