From 6cc7f37dbb8c15f319341e8b91a65813098134ea Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Fri, 22 Apr 2016 10:15:45 +0100 Subject: [PATCH] Publish /site from CI --- bin/publish-site | 39 +++++++++++++++++++++++++++++++++++++++ circle.yml | 12 ++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 bin/publish-site diff --git a/bin/publish-site b/bin/publish-site new file mode 100755 index 00000000..024c64f3 --- /dev/null +++ b/bin/publish-site @@ -0,0 +1,39 @@ +#!/bin/bash + +set -e +set -o pipefail + +PRODUCT=net + +fatal() { + echo "$@" >&2 + exit 1 +} + +if [ ! -d .git ] ; then + fatal "Current directory is not a git clone" +fi + +if ! BRANCH=$(git symbolic-ref --short HEAD) || [ -z "$BRANCH" ] ; then + fatal "Could not determine branch" +fi + +case "$BRANCH" in + issues/*) + VERSION="${BRANCH#issues/}" + ;; + *) + if echo "$BRANCH" | grep -qE '^[0-9]+\.[0-9]+' ; then + DESCRIBE=$(git describe --match 'v*') + if ! VERSION=$(echo "$DESCRIBE" | grep -oP '(?<=^v)[0-9]+\.[0-9]+\.[0-9]+') ; then + fatal "Could not infer latest $BRANCH version from $DESCRIBE" + fi + else + VERSION="$BRANCH" + fi + ;; +esac + +echo ">>> Publishing $PRODUCT $VERSION site to $1" + +wordepress --url "$1" --user "$2" --password "$3" --product "$PRODUCT" --version "$VERSION" publish site diff --git a/circle.yml b/circle.yml index 3262c3df..6438c976 100644 --- a/circle.yml +++ b/circle.yml @@ -18,6 +18,7 @@ dependencies: - "~/docker" post: - "sudo apt-get update && sudo apt-get install bc jq" + - go get github.com/weaveworks/wordepress/cmd/wordepress - curl https://sdk.cloud.google.com | bash - bin/setup-circleci-secrets "$SECRET_PASSWORD" - "mkdir -p $(dirname $SRCDIR) && cp -r $(pwd)/ $SRCDIR" @@ -62,3 +63,14 @@ deployment: - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS - cd $SRCDIR; make clean-bin - cd $SRCDIR; make publish + - cd $SRCDIR; bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" + issues: + branch: /issues\/.*/ + owner: weaveworks + commands: + - cd $SRCDIR; bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" + release: + branch: /[0-9]+\.[0-9]+/ + owner: weaveworks + commands: + - cd $SRCDIR; bin/publish-site "$WP_LIVE_URL" "$WP_LIVE_USER" "$WP_LIVE_PASSWORD"