github.com/weaveworks/common@v0.0.0-20230728070032-dd9e68f319d5/tools/publish-site (about)

     1  #!/bin/bash
     2  
     3  set -e
     4  set -o pipefail
     5  
     6  : "${PRODUCT:=}"
     7  
     8  fatal() {
     9      echo "$@" >&2
    10      exit 1
    11  }
    12  
    13  if [ ! -d .git ]; then
    14      fatal "Current directory is not a git clone"
    15  fi
    16  
    17  if [ -z "${PRODUCT}" ]; then
    18      fatal "Must specify PRODUCT"
    19  fi
    20  
    21  if ! BRANCH=$(git symbolic-ref --short HEAD) || [ -z "$BRANCH" ]; then
    22      fatal "Could not determine branch"
    23  fi
    24  
    25  case "$BRANCH" in
    26      issues/*)
    27          VERSION="${BRANCH#issues/}"
    28          TAGS="$VERSION"
    29          ;;
    30      *)
    31          if echo "$BRANCH" | grep -qE '^[0-9]+\.[0-9]+'; then
    32              DESCRIBE=$(git describe --match 'v*')
    33              if ! VERSION=$(echo "$DESCRIBE" | grep -oP '(?<=^v)[0-9]+\.[0-9]+\.[0-9]+'); then
    34                  fatal "Could not infer latest $BRANCH version from $DESCRIBE"
    35              fi
    36              TAGS="$VERSION latest"
    37          else
    38              VERSION="$BRANCH"
    39              TAGS="$VERSION"
    40          fi
    41          ;;
    42  esac
    43  
    44  for TAG in $TAGS; do
    45      echo ">>> Publishing $PRODUCT $VERSION to $1/docs/$PRODUCT/$TAG"
    46      wordepress \
    47          --url "$1" --user "$2" --password "$3" \
    48          --product "$PRODUCT" --version "$VERSION" --tag "$TAG" \
    49          publish site
    50  done