mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 10:11:03 +00:00
'codecgen' embeds a random integer in each identifier; this means code coverage across different CircleCI lanes may not match. Here we force the integer to 23 on every CircleCI build so they always match.
118 lines
5.2 KiB
YAML
118 lines
5.2 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
|
|
IMAGES: scope cloud-agent
|
|
|
|
dependencies:
|
|
pre:
|
|
- pip install --upgrade requests
|
|
cache_directories:
|
|
- "~/docker"
|
|
override:
|
|
- |
|
|
sudo apt-get update &&
|
|
sudo apt-get install jq pv &&
|
|
sudo chmod a+wr --recursive /usr/local/go/pkg &&
|
|
sudo chown ubuntu:ubuntu "$HOME/.bashrc.backup"
|
|
(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= CODECGEN_UID=23 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 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" && (
|
|
for IMAGE in $IMAGES; do
|
|
docker tag weaveworks/$IMAGE:latest ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:latest &&
|
|
docker tag weaveworks/$IMAGE:$(./tools/image-tag) ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:$(./tools/image-tag)
|
|
done
|
|
)) &&
|
|
for IMAGE in $IMAGES; do
|
|
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE &&
|
|
docker push ${DOCKER_ORGANIZATION:-$DOCKER_USER}/$IMAGE:$(./tools/image-tag)
|
|
done
|
|
(test -z "${UI_BUCKET_KEY_ID}" || (cd $SRCDIR && make ui-upload && make ui-pkg-upload && make trigger-service-ui-build))
|
|
)
|
|
- |
|
|
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"
|