Split into several jobs

Run build, lint and unit-test steps in a container, using a pre-built
image to save rebuilding at CircleCI

Move a couple of scripts up to config.yml for clarity
This commit is contained in:
Bryan Boreham committed 2018-07-30 10:16:18 +00:00
1 parent b13eb5ada5
commit b3e77e81ea
4 files changed
+61 -34

No files matched your search

+60 -13
View File
@@ -1,6 +1,39 @@
version: 2
defaults: &defaults
docker:
- image: weaveworks/weavebuild:circle20-50a4e941
working_directory: /go/src/github.com/weaveworks/weave
jobs:
lint:
<<: *defaults
steps:
- checkout
- run: git submodule update --init
- run: make DEBUG=1 BUILD_IN_CONTAINER=false lint
unit-test:
<<: *defaults
parallelism: 2
steps:
- checkout
- run: COVERDIR=test/coverage make BUILD_IN_CONTAINER=false tests
build:
<<: *defaults
steps:
- checkout
- setup_remote_docker
- run: git submodule update --init
- run: make COVERAGE=true BUILD_IN_CONTAINER=false SUDO= exes all
- persist_to_workspace:
root: .
paths:
- weave.tar.gz
- tools/runner/runner
- test/tls/tls
smoke-tests:
machine:
image: circleci/classic:201709-01
environment:
@@ -13,23 +46,16 @@ jobs:
- run: mkdir $CIRCLE_ARTIFACTS
# copy source dir and submodule update --init
- run: bin/circle-dependencies-post-sources
- restore_cache:
key: v1-cache-{{ checksum "build/Dockerfile" }}-{{ checksum "build/build.sh" }}
- attach_workspace:
at: /home/circleci/src/github.com/weaveworks/weave
# kick off creation of test VMs
- run:
command: bin/provision_test_vms.sh
background: true
# create build image and make all
- run: bin/circle-dependencies-post
- save_cache:
key: v1-cache-{{ checksum "build/Dockerfile" }}-{{ checksum "build/build.sh" }}
paths:
- "~/docker"
# when VMs are ready, copy built software to them
- run:
command: bin/circle-test-pre
background: true
- run: bin/circle-test-unit
- run:
command: bin/circle-test-smoke
no_output_timeout: 360s
@@ -44,8 +70,29 @@ jobs:
command: $SRCDIR/bin/circle-teardown-pre
- store_artifacts:
path: /tmp/artifacts
deploy:
<<: *defaults
steps:
- setup_remote_docker
# Rebuild without coverage and push to dockerhub
- deploy: bin/circle-deploy-master
workflows:
version: 2
build_test:
jobs:
- lint
- unit-test
- build
- smoke-tests:
requires:
- lint
- unit-test
- build
- deploy:
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
bin/circle-deploy-master
fi
requires:
- smoke-tests
filters:
branches:
only: master
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
set -e
cd "$SRCDIR"
git submodule update --init
cd "$SRCDIR/build"
../tools/rebuild-image weaveworks/weavebuild . Dockerfile build.sh
touch "$SRCDIR/.build.uptodate"
sudo chown -R ubuntu /usr/local/go
cd "$SRCDIR"
make testrunner
make COVERAGE=true RM= exes all
+1 -1
View File
@@ -6,4 +6,4 @@ docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
cd $SRCDIR
make clean-bin
# CircleCI doesn't let us install the qemu module to do ARM docker builds
make publish ALL_ARCHITECTURES=amd64 UPDATE_LATEST=latest-only
make publish ALL_ARCHITECTURES=amd64 UPDATE_LATEST=latest-only SUDO= BUILD_IN_CONTAINER=false
-7
View File
@@ -1,7 +0,0 @@
#!/bin/bash
set -e
cd $SRCDIR
make DEBUG=1 lint
COVERDIR=test/coverage make RM= tests