aboutsummaryrefslogtreecommitdiffhomepage
path: root/.travis/prepare-for-deploy.sh
blob: 346f53e8febfbc6afff9a98781bbf2020567e3f4 (plain)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/bash

# Copyright 2015 Google Inc. All rights reserved.
#
# 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.

set -eux

# Create a zip with:
#   * The binary.
#   * A sha256 sum of the binary.
#   * A README with info about the build.
function create_zip() {
  local git_hash
  git_hash=$(git rev-parse --short HEAD)
  local bazel_dir
  bazel_dir=bazel-$git_hash
  mkdir $bazel_dir
  cp output/bazel $bazel_dir
  sha256sum $bazel_dir/bazel > $bazel_dir/sha256.txt
  cat > $bazel_dir/README.md <<EOF
Bazel binary built by Travis CI
-------------------------------

* [Build log](https://travis-ci.org/google/bazel/builds/$TRAVIS_BUILD_ID
* [Commit](https://github.com/$TRAVIS_REPO_SLUG/commit/$git_hash)
EOF
  bazel_zip=bazel-${git_hash}.zip
  echo "Creating $bazel_zip"
  zip -r -qq $bazel_zip $bazel_dir
  rm -rf $bazel_dir
}

# Put the bazel zip in an uploaded dir.
function copy_to_upload_dir() {
  local date_dir=$(date +%F)
  local upload_dir=ci/$date_dir/
  mkdir -p $upload_dir
  mv $bazel_zip $upload_dir
  # Create a symlink to "latest" in the dir.
  (cd $upload_dir; ln -s $bazel_zip bazel.zip)
  echo "$bazel_zip moved to $upload_dir"
}

mkdir -p ci
if [ "${TRAVIS_OS_NAME-}" = "linux" ]; then
  create_zip
  copy_to_upload_dir
fi