diff --git a/bin/circle-dependencies-post b/bin/circle-dependencies-post new file mode 100755 index 00000000..eded9ed8 --- /dev/null +++ b/bin/circle-dependencies-post @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +sudo apt-get -q update && sudo apt-get -q install bc jq +bin/setup-circleci-secrets "$SECRET_PASSWORD" +mkdir -p $(dirname $SRCDIR) && cp -r $(pwd)/ $SRCDIR +cd $SRCDIR; git submodule update --init +if [ "$CIRCLE_NODE_INDEX" = "0" ] ; then + cd $SRCDIR/test; ./gce.sh make_template +fi +cd $SRCDIR/build +../tools/rebuild-image weaveworks/weavebuild . Dockerfile build.sh +touch $SRCDIR/.build.uptodate +sudo chown -R ubuntu /usr/local/go diff --git a/bin/circle-deploy-issues b/bin/circle-deploy-issues new file mode 100755 index 00000000..018d8925 --- /dev/null +++ b/bin/circle-deploy-issues @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +go get github.com/weaveworks/wordepress +cd /home/ubuntu/src/github.com/weaveworks/wordepress +git checkout v1.0.0 +cd cmd/wordepress +go get + +cd $SRCDIR +bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" diff --git a/bin/circle-deploy-master b/bin/circle-deploy-master new file mode 100755 index 00000000..403cd72e --- /dev/null +++ b/bin/circle-deploy-master @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS +cd $SRCDIR +make clean-bin +make publish + +go get github.com/weaveworks/wordepress +cd /home/ubuntu/src/github.com/weaveworks/wordepress +git checkout v1.0.0 +cd cmd/wordepress +go get + +cd $SRCDIR +bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" diff --git a/bin/circle-deploy-release b/bin/circle-deploy-release new file mode 100755 index 00000000..fed3d35e --- /dev/null +++ b/bin/circle-deploy-release @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +go get github.com/weaveworks/wordepress +cd /home/ubuntu/src/github.com/weaveworks/wordepress +git checkout v1.0.0 +cd cmd/wordepress +go get + +cd $SRCDIR +bin/publish-site "$WP_LIVE_URL" "$WP_LIVE_USER" "$WP_LIVE_PASSWORD" diff --git a/bin/circle-teardown-pre b/bin/circle-teardown-pre new file mode 100755 index 00000000..d4ac8e3c --- /dev/null +++ b/bin/circle-teardown-pre @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +if [ "$CIRCLE_NODE_INDEX" = "0" ] ; then + go get github.com/mattn/goveralls + goveralls -repotoken $COVERALLS_REPO_TOKEN -coverprofile=$SRCDIR/test/profile.cov -service=circleci + cd $SRCDIR/test; cp coverage.* $CIRCLE_ARTIFACTS +fi diff --git a/bin/circle-test-override b/bin/circle-test-override new file mode 100755 index 00000000..e8910b82 --- /dev/null +++ b/bin/circle-test-override @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e + +cd $SRCDIR/test +eval $(./gce.sh hosts) +export COVERAGE=true +./run_all.sh diff --git a/bin/circle-test-post b/bin/circle-test-post new file mode 100755 index 00000000..5d362b59 --- /dev/null +++ b/bin/circle-test-post @@ -0,0 +1,7 @@ +#!/bin/bash + +set -e + +cd $SRCDIR/test +./gce.sh destroy +test "$CIRCLE_NODE_INDEX" != "0" || (cd $SRCDIR/test; ./gen_coverage_reports.sh) diff --git a/bin/circle-test-pre b/bin/circle-test-pre new file mode 100755 index 00000000..2521d975 --- /dev/null +++ b/bin/circle-test-pre @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +cd $SRCDIR +make lint +COVERDIR=test/coverage make RM= tests +make COVERAGE=true RM= all +make testrunner + +cd $SRCDIR/test +./gce.sh setup && eval $(./gce.sh hosts) && ./setup.sh diff --git a/circle.yml b/circle.yml index 1879b488..0f700619 100644 --- a/circle.yml +++ b/circle.yml @@ -17,41 +17,23 @@ dependencies: cache_directories: - "~/docker" post: - - "sudo apt-get update && sudo apt-get install bc jq" - - bin/setup-circleci-secrets "$SECRET_PASSWORD" - - "mkdir -p $(dirname $SRCDIR) && cp -r $(pwd)/ $SRCDIR" - - "cd $SRCDIR; git submodule update --init" - - cd $SRCDIR/test; ./gce.sh make_template: - parallel: false - - "cd $SRCDIR/build; ../tools/rebuild-image weaveworks/weavebuild . Dockerfile build.sh && touch $SRCDIR/.build.uptodate" - - "sudo chown -R ubuntu /usr/local/go" + - bin/circle-dependencies-post test: + pre: + - "$SRCDIR/bin/circle-test-pre": + parallel: true override: - - cd $SRCDIR; make lint: - parallel: true - - cd $SRCDIR; COVERDIR=test/coverage make RM= tests: - parallel: true - - cd $SRCDIR; make COVERAGE=true RM= exes all: - parallel: true - - cd $SRCDIR; make testrunner: - parallel: true - - cd $SRCDIR/test; ./gce.sh setup && eval $(./gce.sh hosts) && ./setup.sh: - parallel: true - - cd $SRCDIR/test; eval $(./gce.sh hosts); export COVERAGE=true; ./run_all.sh: + - "$SRCDIR/bin/circle-test-override": parallel: true timeout: 300 post: - - cd $SRCDIR/test; ./gce.sh destroy: - parallel: true - - test "$CIRCLE_NODE_INDEX" != "0" || (cd $SRCDIR/test; ./gen_coverage_reports.sh): + - "$SRCDIR/bin/circle-test-post": parallel: true teardown: pre: - - test "$CIRCLE_NODE_INDEX" != "0" || (go get github.com/mattn/goveralls && goveralls -repotoken $COVERALLS_REPO_TOKEN -coverprofile=$SRCDIR/test/profile.cov -service=circleci || true): - parallel: true - - test "$CIRCLE_NODE_INDEX" != "0" || (cd $SRCDIR/test; cp coverage.* $CIRCLE_ARTIFACTS): + - "$SRCDIR/bin/circle-teardown-pre": parallel: true deployment: @@ -59,20 +41,14 @@ deployment: branch: /[0-9]+\.[0-9]+/ owner: weaveworks commands: - - go get github.com/weaveworks/wordepress && cd /home/ubuntu/src/github.com/weaveworks/wordepress && git checkout v1.0.0 && cd cmd/wordepress && go get - - cd $SRCDIR; bin/publish-site "$WP_LIVE_URL" "$WP_LIVE_USER" "$WP_LIVE_PASSWORD" - hub: + - "$SRCDIR/bin/circle-deploy-release" + master: branch: master owner: weaveworks commands: - - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS - - cd $SRCDIR; make clean-bin - - cd $SRCDIR; make exes publish -# - go get github.com/weaveworks/wordepress && cd /home/ubuntu/src/github.com/weaveworks/wordepress && git checkout v1.0.0 && cd cmd/wordepress && go get -# - cd $SRCDIR; bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" -# issues: -# branch: /.*/ -# owner: weaveworks -# commands: -# - go get github.com/weaveworks/wordepress && cd /home/ubuntu/src/github.com/weaveworks/wordepress && git checkout v1.0.0 && cd cmd/wordepress && go get -# - cd $SRCDIR; bin/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD" + - "$SRCDIR/bin/circle-deploy-master" + issues: + branch: /.*/ + owner: weaveworks + commands: + - "$SRCDIR/bin/circle-deploy-issues"