mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 18:20:27 +00:00
There are two source checkouts in circle, and we were building in the wrong one (ie. not the one where the earlier build happened). This was wasteful at best and buggy at worst due to build differences.
109 lines
4.9 KiB
YAML
109 lines
4.9 KiB
YAML
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"
|