general: branches: ignore: - gh-pages machine: pre: - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0 services: - docker environment: GOPATH: /home/ubuntu SRCDIR: /home/ubuntu/src/github.com/weaveworks/scope PATH: $PATH:$HOME/.local/bin CLOUDSDK_CORE_DISABLE_PROMPTS: 1 SCOPE_UI_BUILD: $HOME/docker/scope_ui_build.tar dependencies: cache_directories: - "~/docker" override: - | sudo apt-get update && sudo apt-get install jq pv && (curl https://sdk.cloud.google.com | bash) && (test -z "$SECRET_PASSWORD" || bin/setup-circleci-secrets "$SECRET_PASSWORD") && make deps && mkdir -p $(dirname $SRCDIR) && cp -r $(pwd)/ $SRCDIR - "cd $SRCDIR/client; ../tools/rebuild-image weaveworks/scope-ui-build . Dockerfile package.json webpack.production.config.js .eslintrc .babelrc && touch $SRCDIR/.scope_ui_build.uptodate" - "cd $SRCDIR/backend; ../tools/rebuild-image weaveworks/scope-backend-build . Dockerfile build.sh && touch $SRCDIR/.scope_backend_build.uptodate" - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; ./gce.sh make_template): parallel: false - sudo apt-get update && sudo apt-get install python-pip && sudo pip install awscli test: override: - cd $SRCDIR; make RM= lint: parallel: true - cd $SRCDIR; COVERDIR=./coverage make RM= tests: parallel: true - cd $SRCDIR; make RM= client-test static: parallel: true - cd $SRCDIR; make RM= client-lint static: parallel: true - cd $SRCDIR; rm -f prog/scope; if [ "$CIRCLE_NODE_INDEX" = "0" ]; then GOARCH=arm make GO_BUILD_INSTALL_DEPS= RM= prog/scope; else GOOS=darwin make GO_BUILD_INSTALL_DEPS= RM= prog/scope; fi: parallel: true - cd $SRCDIR; rm -f prog/scope; make RM=: parallel: true - cd $SRCDIR/extras; ./build_on_circle.sh: parallel: true - "test -z \"$SECRET_PASSWORD\" || (cd $SRCDIR/integration; ./gce.sh setup && eval $(./gce.sh hosts); ./setup.sh)": parallel: true - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; eval $(./gce.sh hosts); ./run_all.sh): parallel: true timeout: 300 post: - test -z "$SECRET_PASSWORD" || (cd $SRCDIR/integration; ./gce.sh destroy): parallel: true - test "$CIRCLE_NODE_INDEX" != "0" || (cd $SRCDIR; ./tools/cover/gather_coverage.sh ./coverage $SRCDIR/coverage): parallel: true - test "$CIRCLE_NODE_INDEX" != "0" || (goveralls -repotoken $COVERALLS_REPO_TOKEN -coverprofile=$SRCDIR/profile.cov -service=circleci || true): parallel: true - test "$CIRCLE_NODE_INDEX" != "0" || (cd $SRCDIR; cp coverage.* scope.tar $CIRCLE_ARTIFACTS): parallel: true deployment: hub: branch: master commands: - | test -z "${DOCKER_USER}" || ( docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && (test "${DOCKER_ORGANIZATION:-$DOCKER_USER}" == "weaveworks" || ( docker tag weaveworks/scope:latest ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:latest && docker tag weaveworks/scope:$(./tools/image-tag) ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:$(./tools/image-tag) )) && docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope && docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:$(./tools/image-tag) && (test -z "${UI_BUCKET_KEY_ID}" || (cd $SRCDIR && make ui-upload)) ) - | test -z "${QUAY_USER}" || ( docker login -e '.' -u "$QUAY_USER" -p "$QUAY_PASSWORD" quay.io && docker tag weaveworks/scope:$(./tools/image-tag) "quay.io/${QUAY_ORGANIZATION}/scope:$(./tools/image-tag)" && docker push "quay.io/${QUAY_ORGANIZATION}/scope:$(./tools/image-tag)" ) hub-dev: branch: /^((?!master).)*$/ # not the master branch commands: - > test -z "${DEPLOY_BRANCH}" || test -z "${DOCKER_USER}" || ( docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker tag weaveworks/scope:latest ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:${CIRCLE_BRANCH//\//-} && docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/scope:${CIRCLE_BRANCH//\//-} ) # release: # branch: /release-[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; PRODUCT=scope tools/publish-site "$WP_LIVE_URL" "$WP_LIVE_USER" "$WP_LIVE_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; PRODUCT=scope tools/publish-site "$WP_DEV_URL" "$WP_DEV_USER" "$WP_DEV_PASSWORD"