| #!/bin/bash |
| set -o nounset |
| set -o errexit |
| |
| # By default bazel creates files with mode 0555 which means they are only able to be read and not written to. This |
| # causes cp to fail when trying to overwrite the file. This makes sure that if the file exists we can overwrite it. |
| function copyFileToDest() { |
| if [ -f $2 ]; then |
| chmod 755 $2 |
| fi |
| |
| cp $1 $2 |
| } |
| |
| echo "Building heron with version $HERON_VERSION for platform $TARGET_PLATFORM" |
| |
| mkdir -p $SCRATCH_DIR |
| cd $SCRATCH_DIR |
| |
| echo "Extracting source" |
| tar -C . -xzf $SOURCE_TARBALL |
| |
| if [[ "$TARGET_PLATFORM" =~ "ubuntu" ]]; then |
| CONFIG_PLATFORM=ubuntu |
| elif [[ "$TARGET_PLATFORM" =~ "centos" ]]; then |
| CONFIG_PLATFORM=centos |
| elif [[ "$TARGET_PLATFORM" =~ "darwin" ]]; then |
| CONFIG_PLATFORM=darwin |
| else |
| echo "Unknown platform: $TARGET_PLATFORM" |
| exit 1 |
| fi |
| |
| ./bazel_configure.py |
| bazel clean |
| |
| echo "Creating packages" |
| bazel build -c opt --config=$CONFIG_PLATFORM scripts/packages:tarpkgs |
| bazel build -c opt --config=$CONFIG_PLATFORM scripts/packages:binpkgs |
| |
| echo "Moving packages to /$OUTPUT_DIRECTORY" |
| for file in ./bazel-bin/scripts/packages/*.tar.gz; do |
| filename=$(basename $file) |
| dest=$OUTPUT_DIRECTORY/${filename/.tar/-$HERON_VERSION-$TARGET_PLATFORM.tar} |
| |
| copyFileToDest $file $dest |
| done |
| |
| echo "Moving install scripts to /$OUTPUT_DIRECTORY" |
| for file in ./bazel-bin/scripts/packages/*.sh; do |
| filename=$(basename $file) |
| dest=$OUTPUT_DIRECTORY/${filename/.sh/-$HERON_VERSION-$TARGET_PLATFORM.sh} |
| |
| copyFileToDest $file $dest |
| done |