diff --git a/cloudbuild_presubmit.yaml b/cloudbuild_presubmit.yaml new file mode 100644 index 0000000000..e20f27331f --- /dev/null +++ b/cloudbuild_presubmit.yaml @@ -0,0 +1,31 @@ +steps: + + - name: 'gcr.io/cloud-builders/docker' + entrypoint: 'bash' + args: + - '-c' + - | + docker pull gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest \ + || exit 0 + + - name: 'gcr.io/cloud-builders/docker' + args: ['build', + '-t', + 'gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest', + '--cache-from', + 'gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest', + 'util/dockerfiles/ubuntu-18.04_all-dependencies'] + + - name: 'gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest' + entrypoint: 'scons' + args: ['build/NULL/unittests.opt', '-j', '4'] + + - name: 'gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest' + dir: 'tests' + entrypoint: 'python' + args: ['main.py', 'run', '-j', '4', '--length', 'quick'] + +images: ['gcr.io/$PROJECT_ID/ubuntu-18.04_all-dependencies:latest'] +options: + machineType: 'N1_HIGHCPU_8' +timeout: 18000s # 5 Hours diff --git a/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile new file mode 100644 index 0000000000..95923f5d9a --- /dev/null +++ b/util/dockerfiles/ubuntu-18.04_all-dependencies/Dockerfile @@ -0,0 +1,34 @@ +# Copyright (c) 2020 The Regents of the University of California +# All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM ubuntu:18.04 + +RUN apt -y update +RUN apt -y upgrade +RUN apt -y install build-essential git m4 scons zlib1g zlib1g-dev \ + libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev \ + python-dev python python-pip doxygen +RUN pip install six