From 598deb827a495e38c1749f17e189d43f454e3b2a Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Fri, 27 Jul 2018 23:31:44 -0700 Subject: [PATCH 1/6] Add docker generation scripts --- ci/README.md | 1 + ci/docker/build/Dockerfile | 21 +++++++++++++++++++++ ci/docker/build/README.md | 13 +++++++++++++ ci/docker/build/build_docker.sh | 7 +++++++ ci/docker/build/engine_gclient | 7 +++++++ ci/docker/build/push_docker.sh | 4 ++++ 6 files changed, 53 insertions(+) create mode 100644 ci/README.md create mode 100644 ci/docker/build/Dockerfile create mode 100644 ci/docker/build/README.md create mode 100755 ci/docker/build/build_docker.sh create mode 100644 ci/docker/build/engine_gclient create mode 100755 ci/docker/build/push_docker.sh diff --git a/ci/README.md b/ci/README.md new file mode 100644 index 0000000000000..6b19e2f10dac5 --- /dev/null +++ b/ci/README.md @@ -0,0 +1 @@ +This directory includes scripts and tools for continuous integration tests. diff --git a/ci/docker/build/Dockerfile b/ci/docker/build/Dockerfile new file mode 100644 index 0000000000000..ba81aff643a26 --- /dev/null +++ b/ci/docker/build/Dockerfile @@ -0,0 +1,21 @@ +FROM ubuntu:14.04 + +ENV DEPOT_TOOLS_PATH ${HOME}/depot_tools +ENV ENGINE_PATH ${HOME}/engine + +RUN apt-get update +RUN apt-get install -y git wget curl unzip python lsb-release sudo + +RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $DEPOT_TOOLS_PATH +ENV PATH $PATH:$DEPOT_TOOLS_PATH + +RUN mkdir --parents $ENGINE_PATH +WORKDIR $ENGINE_PATH +ADD engine_gclient .gclient +RUN gclient sync + +WORKDIR $ENGINE_PATH/src +RUN gclient sync +RUN ./build/install-build-deps.sh --no-prompt +RUN ./build/install-build-deps-android.sh --no-prompt + diff --git a/ci/docker/build/README.md b/ci/docker/build/README.md new file mode 100644 index 0000000000000..a122abaac4944 --- /dev/null +++ b/ci/docker/build/README.md @@ -0,0 +1,13 @@ +This directory includes scripts to build the docker container image used for +building flutter/engine in our CI system (currently [Cirrus](cirrus-ci.org)). + +In order to run the scripts, you have to setup `docker` and `gcloud`. Please +refer to the [internal flutter team doc](go/flutter-team) for how to setup in a +Google internal environment. + +After setup, +* edit `Dockerfile` to change how the container image is built. +* run `./build_docker.sh` to build the container image. +* run `./push_docker.sh` to push the image to google cloud registry. This will + affect our CI tests. + diff --git a/ci/docker/build/build_docker.sh b/ci/docker/build/build_docker.sh new file mode 100755 index 0000000000000..dc0a9433bc85a --- /dev/null +++ b/ci/docker/build/build_docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# pull to make sure we are not rebuilding for nothing +docker pull gcr.io/flutter-cirrus/build-engine-image:0.1 + +docker build --tag gcr.io/flutter-cirrus/build-engine-image:0.1 . + diff --git a/ci/docker/build/engine_gclient b/ci/docker/build/engine_gclient new file mode 100644 index 0000000000000..d89fe98de2b57 --- /dev/null +++ b/ci/docker/build/engine_gclient @@ -0,0 +1,7 @@ +solutions = [{ + "name" : "src/flutter", + "url" : "https://github.com/flutter/engine.git", + "deps_file" : "DEPS", + "managed" : False, + "safesync_url": "", +}] diff --git a/ci/docker/build/push_docker.sh b/ci/docker/build/push_docker.sh new file mode 100755 index 0000000000000..927b4e30a6a89 --- /dev/null +++ b/ci/docker/build/push_docker.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker push gcr.io/flutter-cirrus/build-engine-image:0.1 + From ed029d7538d927b3bc131120483c95506f3bc260 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Sat, 28 Jul 2018 09:54:22 -0700 Subject: [PATCH 2/6] Update LICENSE --- travis/licenses_golden/licenses_flutter | 2 ++ 1 file changed, 2 insertions(+) diff --git a/travis/licenses_golden/licenses_flutter b/travis/licenses_golden/licenses_flutter index 49f2d3317ae2d..51a82ae8f40f7 100644 --- a/travis/licenses_golden/licenses_flutter +++ b/travis/licenses_golden/licenses_flutter @@ -189,6 +189,8 @@ ORIGIN: ../../../LICENSE TYPE: LicenseType.bsd FILE: ../../../flutter/.cirrus.yml FILE: ../../../flutter/DEPS +FILE: ../../../flutter/ci/docker/build/Dockerfile +FILE: ../../../flutter/ci/docker/build/engine_gclient FILE: ../../../flutter/lib/io/dart_io.cc FILE: ../../../flutter/lib/io/dart_io.h FILE: ../../../flutter/lib/snapshot/libraries.json From 2edfe97f841cd0221fa963e541669722d01e17e3 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Sat, 28 Jul 2018 11:08:17 -0700 Subject: [PATCH 3/6] Add dart SDK --- ci/docker/build/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ci/docker/build/Dockerfile b/ci/docker/build/Dockerfile index ba81aff643a26..e745cd3eea516 100644 --- a/ci/docker/build/Dockerfile +++ b/ci/docker/build/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:14.04 -ENV DEPOT_TOOLS_PATH ${HOME}/depot_tools -ENV ENGINE_PATH ${HOME}/engine +ENV DEPOT_TOOLS_PATH $HOME/depot_tools +ENV ENGINE_PATH $HOME/engine RUN apt-get update RUN apt-get install -y git wget curl unzip python lsb-release sudo @@ -19,3 +19,8 @@ RUN gclient sync RUN ./build/install-build-deps.sh --no-prompt RUN ./build/install-build-deps-android.sh --no-prompt +WORKDIR $HOME/dart +RUN wget https://storage.googleapis.com/dart-archive/channels/dev/release/2.0.0-dev.63.0/sdk/dartsdk-linux-x64-release.zip +RUN unzip dartsdk-linux-x64-release.zip +ENV PATH $PATH:$HOME/dart/dart-sdk/bin + From d927c24f13b7c260bcd599ad00f033af3678f0d0 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Sat, 28 Jul 2018 11:29:53 -0700 Subject: [PATCH 4/6] Update version --- ci/docker/build/build_docker.sh | 4 ++-- ci/docker/build/push_docker.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/docker/build/build_docker.sh b/ci/docker/build/build_docker.sh index dc0a9433bc85a..65da1dcc72b09 100755 --- a/ci/docker/build/build_docker.sh +++ b/ci/docker/build/build_docker.sh @@ -1,7 +1,7 @@ #!/bin/bash # pull to make sure we are not rebuilding for nothing -docker pull gcr.io/flutter-cirrus/build-engine-image:0.1 +docker pull gcr.io/flutter-cirrus/build-engine-image:0.2 -docker build --tag gcr.io/flutter-cirrus/build-engine-image:0.1 . +docker build --tag gcr.io/flutter-cirrus/build-engine-image:0.2 . diff --git a/ci/docker/build/push_docker.sh b/ci/docker/build/push_docker.sh index 927b4e30a6a89..2a169d0e1111b 100755 --- a/ci/docker/build/push_docker.sh +++ b/ci/docker/build/push_docker.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker push gcr.io/flutter-cirrus/build-engine-image:0.1 +docker push gcr.io/flutter-cirrus/build-engine-image:0.2 From d6b6a571cb5cd78bc3f9fa876ca0cca66eb6aa73 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Sat, 28 Jul 2018 15:54:45 -0700 Subject: [PATCH 5/6] Use latest version --- ci/docker/build/build_docker.sh | 4 ++-- ci/docker/build/push_docker.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/docker/build/build_docker.sh b/ci/docker/build/build_docker.sh index 65da1dcc72b09..5eeb0fc83d565 100755 --- a/ci/docker/build/build_docker.sh +++ b/ci/docker/build/build_docker.sh @@ -1,7 +1,7 @@ #!/bin/bash # pull to make sure we are not rebuilding for nothing -docker pull gcr.io/flutter-cirrus/build-engine-image:0.2 +docker pull gcr.io/flutter-cirrus/build-engine-image:latest -docker build --tag gcr.io/flutter-cirrus/build-engine-image:0.2 . +docker build --tag gcr.io/flutter-cirrus/build-engine-image:latest . diff --git a/ci/docker/build/push_docker.sh b/ci/docker/build/push_docker.sh index 2a169d0e1111b..80c79cb8d7c25 100755 --- a/ci/docker/build/push_docker.sh +++ b/ci/docker/build/push_docker.sh @@ -1,4 +1,4 @@ #!/bin/bash -docker push gcr.io/flutter-cirrus/build-engine-image:0.2 +docker push gcr.io/flutter-cirrus/build-engine-image:latest From cb311843f2fee1d8b56935bbd3f1a8e3fa8acec8 Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Mon, 30 Jul 2018 10:15:19 -0700 Subject: [PATCH 6/6] Remove unnecessary gclient sync --- ci/docker/build/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/ci/docker/build/Dockerfile b/ci/docker/build/Dockerfile index e745cd3eea516..81655f7adf228 100644 --- a/ci/docker/build/Dockerfile +++ b/ci/docker/build/Dockerfile @@ -15,7 +15,6 @@ ADD engine_gclient .gclient RUN gclient sync WORKDIR $ENGINE_PATH/src -RUN gclient sync RUN ./build/install-build-deps.sh --no-prompt RUN ./build/install-build-deps-android.sh --no-prompt