#!/usr/bin/env bash set -o errexit -o nounset -o pipefail # This script is called by Bazel when it needs info about the git state. # The --workspace_status_command flag tells Bazel the location of this script. # This is configured in `/.bazelrc`. set -o pipefail -o errexit -o nounset function has_local_changes { if [ "$(git status --porcelain)" != "" ]; then echo dirty else echo clean fi } # "stable" keys, should remain constant over rebuilds, therefore changed values will cause a # rebuild of any stamped action that uses ctx.info_file or genrule with stamp = True # Note, BUILD_USER is automatically available in the stable-status.txt, it matches $USER echo "STABLE_BUILD_SCM_SHA $(git rev-parse HEAD)" echo "STABLE_BUILD_SCM_LOCAL_CHANGES $(has_local_changes)" if [ "$(git tag | wc -l)" -gt 0 ]; then echo "STABLE_BUILD_SCM_TAG $(git describe --tags)" fi