mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 09:41:57 +00:00
WIP -- fixing some shellcheck issues in scope
This commit is contained in:
72
bin/release
72
bin/release
@@ -8,10 +8,10 @@ DOCKERHUB_USER=${DOCKERHUB_USER:-weaveworks}
|
||||
RELEASE_NAME=${RELEASE_NAME:-"Weave Scope"}
|
||||
RELEASE_DESCRIPTION=${RELEASE_DESCRIPTION:-"Container Visibility"}
|
||||
|
||||
PWD=`pwd`
|
||||
PWD=$(pwd)
|
||||
WC="wc"
|
||||
# Use GNU wc on Darwin
|
||||
case $OSTYPE in darwin*) WC="gwc" ;; esac
|
||||
case "$OSTYPE" in darwin*) WC="gwc" ;; esac
|
||||
|
||||
infer_release_type() {
|
||||
if echo $1 | grep -qE '^v[0-9]+\.[0-9]+\.0+$' ; then
|
||||
@@ -26,7 +26,7 @@ infer_release_type() {
|
||||
setup() {
|
||||
# Ensure we have exactly one annotated tag pointing at HEAD
|
||||
HEAD_TAGS=$(git tag --points-at HEAD)
|
||||
TAG_COUNT=$(echo $(echo $HEAD_TAGS | wc -w)) # mac hack
|
||||
TAG_COUNT=$(echo $(echo $HEAD_TAGS | wc -w)) # mac hack
|
||||
case $TAG_COUNT in
|
||||
1)
|
||||
if [ $HEAD_TAGS != "latest_release" ] ; then
|
||||
@@ -49,11 +49,11 @@ setup() {
|
||||
;;
|
||||
esac
|
||||
|
||||
RELEASE_TYPE=$(infer_release_type $LATEST_TAG)
|
||||
RELEASE_TYPE=$(infer_release_type "$LATEST_TAG")
|
||||
echo "== Inferred release type $RELEASE_TYPE from tag $LATEST_TAG"
|
||||
|
||||
LATEST_TAG_SHA=$(git rev-parse $LATEST_TAG)
|
||||
LATEST_TAG_COMMIT_SHA=$(git rev-list -1 $LATEST_TAG)
|
||||
LATEST_TAG_SHA=$(git rev-parse "$LATEST_TAG")
|
||||
LATEST_TAG_COMMIT_SHA=$(git rev-list -1 "$LATEST_TAG")
|
||||
LATEST_RELEASE_SHA=$(git rev-parse latest_release)
|
||||
LATEST_RELEASE_COMMIT_SHA=$(git rev-list -1 latest_release)
|
||||
if [ "$RELEASE_TYPE" != 'PRERELEASE' ] ; then
|
||||
@@ -69,7 +69,7 @@ build() {
|
||||
setup
|
||||
|
||||
echo "== Clone repo at $LATEST_TAG for version $VERSION"
|
||||
if [ -d $RELEASE_DIR ]; then
|
||||
if [ -d "$RELEASE_DIR" ]; then
|
||||
echo -e "\u2757 Release directory $RELEASE_DIR already exists, you may want to" >&2
|
||||
echo -e "\trm -rf $RELEASE_DIR" >&2
|
||||
exit 1
|
||||
@@ -77,12 +77,12 @@ build() {
|
||||
|
||||
## Clone the repo at the tag and go there
|
||||
mkdir -p releases
|
||||
git clone -q -b $LATEST_TAG . $RELEASE_DIR 2>/dev/null
|
||||
cd $RELEASE_DIR
|
||||
git clone -q -b "$LATEST_TAG" . "$RELEASE_DIR" 2>/dev/null
|
||||
cd "$RELEASE_DIR"
|
||||
|
||||
## Check that the top changelog entry is this version
|
||||
if ! latest_changelog=$(perl -nle'print $& if m{(?<=^## Release ).*}' ./CHANGELOG.md | head -1) || \
|
||||
! [ `echo "$latest_changelog" = "$VERSION"` ]; then
|
||||
! [ $(echo "$latest_changelog" = "$VERSION") ]; then
|
||||
echo -e "\u2757 Latest changelog entry \"$latest_changelog\" does not match the release version $VERSION" >&2
|
||||
exit 1
|
||||
fi
|
||||
@@ -93,9 +93,9 @@ build() {
|
||||
## Inject the version numbers and build the distributables
|
||||
## (library versions?)
|
||||
sed -i.tmp "s/SCRIPT_VERSION=\"[^\"]*\"/SCRIPT_VERSION=\"$VERSION\"/" ./scope
|
||||
make SUDO=$SUDO SCOPE_VERSION=$VERSION DOCKERHUB_USER=$DOCKERHUB_USER
|
||||
make "SUDO=$SUDO" "SCOPE_VERSION=$VERSION" "DOCKERHUB_USER=$DOCKERHUB_USER"
|
||||
|
||||
if make tests SUDO=$SUDO; then
|
||||
if make tests "SUDO=$SUDO"; then
|
||||
echo -e '\u2713 Tests pass'
|
||||
else
|
||||
echo -e "\u2757 Tests failed, probably best not publish this one" >&2
|
||||
@@ -110,13 +110,13 @@ build() {
|
||||
#fi
|
||||
|
||||
echo -e '\u2713 Build OK'
|
||||
echo '** Release artefacts in' $RELEASE_DIR
|
||||
echo '** Release artefacts in' "$RELEASE_DIR"
|
||||
}
|
||||
|
||||
draft() {
|
||||
setup
|
||||
|
||||
cd $PWD/$RELEASE_DIR
|
||||
cd "$PWD/$RELEASE_DIR"
|
||||
|
||||
echo "== Sanity checks"
|
||||
|
||||
@@ -133,13 +133,13 @@ draft() {
|
||||
|
||||
## Check that the version does not already exist by looking at github
|
||||
## releases
|
||||
if github-release info --user $GITHUB_USER --repo scope --tag $LATEST_TAG >/dev/null 2>&1; then
|
||||
if github-release info --user "$GITHUB_USER" --repo scope --tag "$LATEST_TAG" >/dev/null 2>&1; then
|
||||
echo -e "\u2757 Release $LATEST_TAG already exists on GitHub" >&2
|
||||
echo -e "\thttps://github.com/$GITHUB_USER/scope/releases/$LATEST_TAG" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '** Sanity checks OK for publishing tag' $LATEST_TAG as $DOCKERHUB_USER/scope:$VERSION
|
||||
echo '** Sanity checks OK for publishing tag' "$LATEST_TAG" as "$DOCKERHUB_USER/scope:$VERSION"
|
||||
|
||||
RELEASE_ARGS="--draft"
|
||||
if [ "$RELEASE_TYPE" = 'PRERELEASE' ] ; then
|
||||
@@ -147,17 +147,17 @@ draft() {
|
||||
fi
|
||||
|
||||
echo "== Creating GitHub release $RELEASE_ARGS $RELEASE_NAME $VERSION"
|
||||
github-release release $RELEASE_ARGS \
|
||||
--user $GITHUB_USER \
|
||||
github-release release "$RELEASE_ARGS" \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag $LATEST_TAG \
|
||||
--tag "$LATEST_TAG" \
|
||||
--name "$RELEASE_NAME $VERSION" \
|
||||
--description "$RELEASE_DESCRIPTION"
|
||||
|
||||
github-release upload \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag $LATEST_TAG \
|
||||
--tag "$LATEST_TAG" \
|
||||
--name "scope" \
|
||||
--file "./scope"
|
||||
|
||||
@@ -167,7 +167,7 @@ draft() {
|
||||
|
||||
publish() {
|
||||
setup
|
||||
cd $PWD/$RELEASE_DIR
|
||||
cd "$PWD/$RELEASE_DIR"
|
||||
|
||||
UPDATE_LATEST=false
|
||||
if [ "$RELEASE_TYPE" = 'MAINLINE' ] ; then
|
||||
@@ -176,16 +176,16 @@ publish() {
|
||||
|
||||
if [ "$RELEASE_TYPE" = 'PRERELEASE' ] ; then
|
||||
echo "== Tagging and pushing images on docker hub as user $DOCKERHUB_USER"
|
||||
$SUDO docker tag -f $DOCKERHUB_USER/scope $DOCKERHUB_USER/scope:$VERSION
|
||||
$SUDO docker push $DOCKERHUB_USER/scope:$VERSION
|
||||
$SUDO docker tag -f "$DOCKERHUB_USER/scope" "$DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:$VERSION"
|
||||
echo "** Docker images tagged and pushed"
|
||||
|
||||
echo "== Publishing pre-release on GitHub"
|
||||
|
||||
github-release publish \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag $LATEST_TAG
|
||||
--tag "$LATEST_TAG"
|
||||
|
||||
echo "** Pre-release $RELEASE_NAME $VERSION published at"
|
||||
echo -e "\thttps://github.com/$GITHUB_USER/scope/releases/$LATEST_TAG"
|
||||
@@ -199,44 +199,44 @@ publish() {
|
||||
fi
|
||||
|
||||
## Check that the 'latest_release' tag exists by looking at github
|
||||
if ! curl -sSf https://api.github.com/repos/$GITHUB_USER/scope/git/tags/$LATEST_RELEASE_SHA >/dev/null 2>&1; then
|
||||
if ! curl -sSf "https://api.github.com/repos/$GITHUB_USER/scope/git/tags/$LATEST_RELEASE_SHA" >/dev/null 2>&1; then
|
||||
echo -e "\u2757 Tag latest_release is not on GitHub, or is not the same as the local tag" >&2
|
||||
echo -e "\thttps://github.com/$GITHUB_USER/scope/tags" >&2
|
||||
echo "You may need to" >&2
|
||||
echo -e "\tgit push -f git@github.com:$GITHUB_USER/scope latest_release" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo '** Sanity checks OK for publishing tag' $LATEST_TAG as $DOCKERHUB_USER/scope:$VERSION
|
||||
echo '** Sanity checks OK for publishing tag' "$LATEST_TAG" as "$DOCKERHUB_USER/scope:$VERSION"
|
||||
|
||||
echo "== Tagging and pushing images on docker hub as user $DOCKERHUB_USER"
|
||||
$SUDO docker tag -f $DOCKERHUB_USER/scope $DOCKERHUB_USER/scope:$VERSION
|
||||
$SUDO docker push $DOCKERHUB_USER/scope:$VERSION
|
||||
$SUDO docker tag -f "$DOCKERHUB_USER/scope $DOCKERHUB_USER/scope:$VERSION"
|
||||
$SUDO docker push "$DOCKERHUB_USER/scope:$VERSION"
|
||||
echo "** Docker images tagged and pushed"
|
||||
|
||||
echo "== Publishing release on GitHub"
|
||||
|
||||
github-release publish \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag $LATEST_TAG
|
||||
--tag "$LATEST_TAG"
|
||||
|
||||
if github-release info --user $GITHUB_USER --repo scope \
|
||||
if github-release info --user "$GITHUB_USER" --repo scope \
|
||||
--tag latest_release >/dev/null 2>&1; then
|
||||
github-release delete \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag latest_release
|
||||
fi
|
||||
|
||||
github-release release \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag latest_release \
|
||||
--name "$RELEASE_NAME latest ($VERSION)" \
|
||||
--description "[Release Notes](https://github.com/$GITHUB_USER/scope/releases/$LATEST_TAG)"
|
||||
|
||||
github-release upload \
|
||||
--user $GITHUB_USER \
|
||||
--user "$GITHUB_USER" \
|
||||
--repo scope \
|
||||
--tag latest_release \
|
||||
--name "scope" \
|
||||
|
||||
Reference in New Issue
Block a user