- units.sh should exit on error. - Add race detector to unit test runner. - Use local testing/cover/cover tool in gen_coverage_report.sh and units.sh - Use the scheduler to parallelise the unit tests. - Make test run id a string and differentiate between unit runs and integration runs in the scheduler. - Pipe circle env vars through to build container so we can detect when to use the scheduler - Add python requests to the weave build container. - Quote test names in urls, make flask handle url segments with slashes in.
25 lines
1.2 KiB
Docker
25 lines
1.2 KiB
Docker
FROM ubuntu
|
|
|
|
RUN apt-get -y update && apt-get -y install --no-install-recommends ca-certificates apt-transport-https
|
|
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
|
|
RUN echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
|
|
RUN apt-get -y update && apt-get -y install --no-install-recommends build-essential git lxc-docker-1.3.1 mercurial libpcap-dev curl make pkg-config gcc bison flex python-requests
|
|
|
|
# When doing a build in a container, "apt-get update" happens twice,
|
|
# which can be a very significant overhead for incremental builds.
|
|
# And it's unnecessary, because if any of the prerequisites do change,
|
|
# the right thing to do is to rebuild the container image. Rather
|
|
# than suppressing the "apt-get update" commands explicitly, we clear
|
|
# out sources.list so that 'apt-get update' doesn't do anything.
|
|
RUN echo >/etc/apt/sources.list
|
|
|
|
ENV GO_VERSION 1.4.2
|
|
RUN curl -sSL https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xz
|
|
ENV PATH /usr/local/go/bin:$PATH
|
|
|
|
# So that sudo does not trample on PATH
|
|
RUN sed -ie '/secure_path/d' /etc/sudoers
|
|
|
|
COPY build.sh /
|
|
ENTRYPOINT ["sh", "/build.sh"]
|