#!/usr/bin/env bash usage() { echo "Usage: $0 [-c ] [-r ]" 1>&2; exit 0; } [ $# -eq 0 ] && usage set -u config="" config_release="" commit_range="" while getopts ":c:r:Rh" opt; do case $opt in c) config="--config=$OPTARG" ;; R) config_release="--config=release";; r) commit_range="$OPTARG" ;; h | *) usage ;; esac done push_edge_tarballs=false push_remotecli_tarballs=false push_edgeadmin_tarballs=false if [[ -n $commit_range ]] then diff_labels=() edge_tarball_labels=( "//hack/release:edge_linux_tarball" "//hack/release:edge_darwin_tarball" ) remotecli_tarball_labels=( "//hack/sds/release:remotecliv1_darwin_tarball" "//hack/sds/release:remotecliv1_linux_tarball" "//hack/sds/release:remotecli_darwin_tarball" "//hack/sds/release:remotecli_linux_tarball" ) edgeadmin_tarball_labels=( "//hack/release:edgeadmin_darwin_tarball" "//hack/release:edgeadmin_linux_tarball" ) diff_label_file=$(bazel run //hack/build/ci/leaf -- -f --exclude-manual-tags --bazel-configs=$config $commit_range) read -d '' -r -a diff_labels < "$diff_label_file" for label in "${edge_tarball_labels[@]}"; do if [[ "${diff_labels[*]}" =~ $label ]]; then echo "Found $label" push_edge_tarballs=true break fi done for label in "${remotecli_tarball_labels[@]}"; do if [[ "${diff_labels[*]}" =~ $label ]]; then echo "Found $label" push_remotecli_tarballs=true break fi done for label in "${edgeadmin_tarball_labels[@]}"; do if [[ "${diff_labels[*]}" =~ $label ]]; then echo "Found $label" push_edgeadmin_tarballs=true break fi done else echo "commit range not set, pushing all tarballs" push_edge_tarballs=true push_remotecli_tarballs=true push_edgeadmin_tarballs=true fi if [[ $push_edge_tarballs == false && $push_remotecli_tarballs == false && $push_edgeadmin_tarballs == false ]]; then echo "Edge tarballs not affected by changes, exiting" exit 0 fi if [[ $push_edge_tarballs == true ]]; then echo "Pushing edge tarball" bazel run "$config" "$config_release" hack/release:push_edge_tarballs fi if [[ $push_edgeadmin_tarballs == true ]]; then echo "Pushing edgeadmin tarball" bazel run "$config" "$config_release" hack/release:push_edgeadmin_tarballs fi if [[ $push_remotecli_tarballs == true ]]; then echo "Pushing Remote CLI tarball" bazel run "$config" "$config_release" hack/sds/release:push_remotecli_tarballs fi exit 0