Fix usage of depot_tools in containers.
depot_tools w/vpython now seems to require the depot_tools dir to be on PATH, and also python and curl need to be installed. * Creates a new base image that has all the build tools we need for building Skia: skia-build-tools. * Moves skia-release to use that new base image. * Moves both the skia-release and wasm builds to use fetch and gclient sync. * Changes gcr.io/skia-public/emsdk-base:prod to depend on skia-build-tools. Bug: skia:993053 Change-Id: Ib6218d8c18dd59d43de84dcf063f204cfc8556d0 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/248556 Commit-Queue: Joe Gregorio <jcgregorio@google.com> Reviewed-by: Eric Boren <borenet@google.com>
This commit is contained in:
parent
c910602376
commit
4cb778e367
6
docker/Makefile
Normal file
6
docker/Makefile
Normal file
@ -0,0 +1,6 @@
|
||||
# Build gcr.io/skia-public/skia-build-tools:latest, the image used to compile
|
||||
# Skia in Google Cloud Build.
|
||||
push-skia-build-tools:
|
||||
docker build -t skia-build-tools ./skia-build-tools
|
||||
docker tag skia-build-tools gcr.io/skia-public/skia-build-tools:latest
|
||||
docker push gcr.io/skia-public/skia-build-tools:latest
|
@ -1,10 +1,8 @@
|
||||
Docker
|
||||
======
|
||||
# Docker
|
||||
|
||||
Docker files for building different Skia targets.
|
||||
|
||||
skia-release
|
||||
------
|
||||
## skia-release
|
||||
|
||||
This image is used to build Skia at TOT with SwiftShader.
|
||||
|
||||
@ -15,8 +13,7 @@ need to manually push a verison, then run the following commands:
|
||||
docker tag skia-release gcr.io/skia-public/skia-release:prod
|
||||
docker push gcr.io/skia-public/skia-release:prod
|
||||
|
||||
skia-wasm-release
|
||||
------
|
||||
## skia-wasm-release
|
||||
|
||||
This image is used to build the Web Assembly (WASM) libraries of Skia
|
||||
at TOT.
|
||||
@ -29,8 +26,7 @@ need to manually push a verison, then run the following commands:
|
||||
docker push gcr.io/skia-public/skia-wasm-release:prod
|
||||
|
||||
|
||||
skia-with-swift-shader-base
|
||||
------
|
||||
## skia-with-swift-shader-base
|
||||
|
||||
This image is used to build a local checkout of Skia with SwiftShader and run the built
|
||||
executables without requiring the SwiftShader be installed on the host.
|
||||
@ -49,8 +45,7 @@ following commands:
|
||||
docker tag skia-with-swift-shader-base gcr.io/skia-public/skia-with-swift-shader-base:prod
|
||||
docker push gcr.io/skia-public/skia-with-swift-shader-base:prod
|
||||
|
||||
cmake-release
|
||||
------
|
||||
## cmake-release
|
||||
|
||||
This image is used to build Skia using CMake.
|
||||
|
||||
@ -70,8 +65,7 @@ For testing the image locally, the following flow can be helpful:
|
||||
# Compile Skia in a local checkout with the local image
|
||||
docker run -v $SKIA_ROOT:/SRC -v /tmp/output:/OUT cmake-release /SRC/infra/docker/cmake/build_skia.sh
|
||||
|
||||
binary-size
|
||||
------
|
||||
## binary-size
|
||||
|
||||
This image is used to build code size tree-maps of Skia
|
||||
|
||||
@ -89,4 +83,12 @@ For testing the image locally, the following flow can be helpful:
|
||||
# installed and configured.
|
||||
docker run -it binary-size /bin/sh
|
||||
# analyze exe "skottie_tool" in build directory out/Release
|
||||
docker run -v $SKIA_ROOT/out/Release:/IN -v /tmp/output:/OUT binary-size /opt/binary_size/src/run_binary_size_analysis.py --library /IN/skottie_tool --destdir /OUT
|
||||
docker run -v $SKIA_ROOT/out/Release:/IN -v /tmp/output:/OUT binary-size /opt/binary_size/src/run_binary_size_analysis.py --library /IN/skottie_tool --destdir /OUT
|
||||
|
||||
## skia-build-tools
|
||||
|
||||
This image contains all the tools needed to build Skia.
|
||||
|
||||
To push a new version run:
|
||||
|
||||
make push-skia-build-tools
|
@ -2,7 +2,9 @@
|
||||
# Builder: https://cloud.google.com/container-builder/docs/
|
||||
#
|
||||
steps:
|
||||
# To test locally, first uncomment the last two lines of this comment block, then submit with:
|
||||
# To test locally, first uncomment the last 8 lines of this comment block,
|
||||
# update the /refs/changes/... value to reflect the CL you are testing and
|
||||
# then run:
|
||||
#
|
||||
# gcloud builds submit --config cloudbuild.yaml --no-source --substitutions=COMMIT_SHA=b2acf0a93927a57cc1fa9323839e788379ae3366
|
||||
#
|
||||
@ -10,12 +12,18 @@ steps:
|
||||
#
|
||||
#- name: 'gcr.io/cloud-builders/git'
|
||||
# args: ['clone', 'https://github.com/google/skia.git', '.']
|
||||
#
|
||||
#- name: 'gcr.io/cloud-builders/git'
|
||||
# args: ['fetch', 'https://skia.googlesource.com/skia','refs/changes/56/248556/18']
|
||||
#
|
||||
#- name: 'gcr.io/cloud-builders/git'
|
||||
# args: ['checkout', 'FETCH_HEAD']
|
||||
|
||||
- name: 'debian:testing-slim'
|
||||
args: ['mkdir', '-p', '--mode=0777', '/workspace/__doxygen_staging']
|
||||
args: ['mkdir', '-p', '--mode=0777', './__doxygen_staging']
|
||||
|
||||
- name: 'debian:testing-slim'
|
||||
args: ['mkdir', '-p', '--mode=0777', '/workspace/__cache']
|
||||
args: ['ls', '-al', '/']
|
||||
|
||||
- name: 'gcr.io/skia-public/doxygen:testing-slim'
|
||||
dir: './tools/doxygen'
|
||||
@ -142,7 +150,4 @@ images:
|
||||
- 'gcr.io/$PROJECT_ID/skia-wasm-release:prod'
|
||||
timeout: 7200s
|
||||
options:
|
||||
machineType: 'N1_HIGHCPU_32'
|
||||
env: # https://bugs.chromium.org/p/chromium/issues/detail?id=993053#c3
|
||||
- 'VPYTHON_VIRTUALENV_ROOT=/workspace/__cache'
|
||||
- 'CIPD_CACHE_DIR=/workspace/__cache'
|
||||
machineType: 'N1_HIGHCPU_32'
|
20
docker/skia-build-tools/Dockerfile
Normal file
20
docker/skia-build-tools/Dockerfile
Normal file
@ -0,0 +1,20 @@
|
||||
# Dockerfile for building an image with all the tools needed to checkout and build Skia.
|
||||
FROM launcher.gcr.io/google/clang-debian9 AS build
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
git \
|
||||
python \
|
||||
curl \
|
||||
build-essential \
|
||||
libfontconfig-dev \
|
||||
libgl1-mesa-dev \
|
||||
libglu1-mesa-dev \
|
||||
&& groupadd -g 2000 skia \
|
||||
&& useradd -u 2000 -g 2000 skia
|
||||
|
||||
RUN cd /tmp \
|
||||
&& git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git'
|
||||
|
||||
ENV PATH=${PATH}:/tmp/depot_tools
|
||||
|
||||
ADD --chown=skia:skia https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libGLESv2.so /usr/local/lib/libGLESv2.so
|
||||
ADD --chown=skia:skia https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libEGL.so /usr/local/lib/libEGL.so
|
@ -1,26 +1,18 @@
|
||||
# Dockerfile for building Skia in release mode, using 3rd party libs from DEPS, with SwiftShader.
|
||||
FROM launcher.gcr.io/google/clang-debian9 AS build
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
git \
|
||||
python \
|
||||
curl \
|
||||
build-essential \
|
||||
libfontconfig-dev \
|
||||
libgl1-mesa-dev \
|
||||
libglu1-mesa-dev \
|
||||
&& groupadd -g 2000 skia \
|
||||
&& useradd -u 2000 -g 2000 --home-dir /workspace/__cache skia
|
||||
FROM gcr.io/skia-public/skia-build-tools:latest
|
||||
|
||||
ADD --chown=skia:skia https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libGLESv2.so /usr/local/lib/libGLESv2.so
|
||||
ADD --chown=skia:skia https://storage.googleapis.com/swiftshader-binaries/OpenGL_ES/Latest/Linux/libEGL.so /usr/local/lib/libEGL.so
|
||||
RUN cd /tmp \
|
||||
&& git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' \
|
||||
&& git clone https://swiftshader.googlesource.com/SwiftShader swiftshader \
|
||||
&& mkdir -p /tmp/skia \
|
||||
&& cd /tmp/skia \
|
||||
&& /tmp/depot_tools/fetch skia \
|
||||
&& cd skia
|
||||
&& git clone https://swiftshader.googlesource.com/SwiftShader swiftshader
|
||||
|
||||
# Checkout Skia.
|
||||
RUN mkdir -p /tmp/skia \
|
||||
&& cd /tmp/skia \
|
||||
&& fetch skia \
|
||||
&& cd skia \
|
||||
&& gclient sync \
|
||||
&& ./bin/fetch-gn
|
||||
|
||||
# Write args.gn.
|
||||
RUN mkdir -p /tmp/skia/skia/out/Static
|
||||
RUN echo ' \n\
|
||||
cc = "clang" \n\
|
||||
@ -39,9 +31,8 @@ extra_ldflags = [ \n\
|
||||
"-Wl,/usr/local/lib" \n\
|
||||
] ' > /tmp/skia/skia/out/Static/args.gn
|
||||
|
||||
# Build Skia.
|
||||
RUN cd /tmp/skia/skia \
|
||||
&& python tools/git-sync-deps \
|
||||
&& ./bin/fetch-gn \
|
||||
&& ./bin/gn gen out/Static \
|
||||
&& git rev-parse HEAD > VERSION \
|
||||
&& /tmp/depot_tools/ninja -C out/Static \
|
||||
|
@ -1,14 +1,12 @@
|
||||
# Dockerfile for building the WASM libraries used by jsfiddle.skia.org and debugger.skia.org
|
||||
FROM gcr.io/skia-public/emsdk-base:prod as builder
|
||||
|
||||
RUN cd /tmp \
|
||||
&& git clone 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' \
|
||||
&& mkdir -p /tmp/skia \
|
||||
# Checkout Skia.
|
||||
RUN mkdir -p /tmp/skia \
|
||||
&& cd /tmp/skia \
|
||||
&& /tmp/depot_tools/fetch skia
|
||||
|
||||
RUN cd /tmp/skia/skia \
|
||||
&& python tools/git-sync-deps \
|
||||
&& fetch skia \
|
||||
&& cd skia \
|
||||
&& gclient sync \
|
||||
&& ./bin/fetch-gn
|
||||
|
||||
# PathKit should be in /tmp/skia/skia/out/pathkit/
|
||||
|
@ -1,10 +1,8 @@
|
||||
# A Docker image that has the Emscripten SDK installed to /opt/emsdk
|
||||
# Use this image to compile C/C++ code to WASM.
|
||||
|
||||
FROM launcher.gcr.io/google/clang-debian9
|
||||
FROM gcr.io/skia-public/skia-build-tools:latest
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
git \
|
||||
python \
|
||||
nodejs \
|
||||
default-jre
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user