| # Dockerfile for Skia Infrastructure CI environment. | |
| # TODO(jcgregorio) Switch back to debian:testing after | |
| # https://github.com/nodesource/distributions/issues/873 is resolved. | |
| FROM debian:buster | |
| RUN groupadd -g 2000 skia \ | |
| && useradd -m -u 2000 -g 2000 skia \ | |
| && apt-get update && apt-get upgrade -y && apt-get install -y \ | |
| build-essential \ | |
| git \ | |
| curl \ | |
| clang \ | |
| nodejs \ | |
| npm \ | |
| wget | |
| USER skia | |
| RUN mkdir -p /home/skia/golib/src \ | |
| && cd /home/skia \ | |
| && wget https://dl.google.com/go/go1.16.3.linux-amd64.tar.gz \ | |
| && tar -xf go1.16.3.linux-amd64.tar.gz | |
| ENV GOPATH /home/skia/golib | |
| ENV PATH $GOPATH/bin:/home/skia/go/bin:$PATH | |
| ENV GO111MODULE on | |
| RUN cd $GOPATH/src \ | |
| && mkdir go.skia.org \ | |
| && cd go.skia.org \ | |
| && git clone https://skia.googlesource.com/buildbot.git infra | |
| # Set fake identity for git rebase. See thread in | |
| # https://skia-review.googlesource.com/c/buildbot/+/286537/5/docker/Dockerfile#46 | |
| RUN cd $GOPATH/src/go.skia.org/infra \ | |
| && git config user.email "skia@skia.org" \ | |
| && git config user.name "Skia" | |
| # HASH must be specified. | |
| ARG HASH | |
| RUN if [ -z "${HASH}" ] ; then echo "HASH must be specified as a --build-arg"; exit 1; fi | |
| RUN cd $GOPATH/src/go.skia.org/infra \ | |
| && git fetch \ | |
| && git reset --hard ${HASH} | |
| # If patch ref is specified then update the ref to patch in a CL. | |
| ARG PATCH_REF | |
| RUN if [ ! -z "${PATCH_REF}" ] ; then cd $GOPATH/src/go.skia.org/infra \ | |
| && git fetch https://skia.googlesource.com/buildbot ${PATCH_REF} \ | |
| && git checkout FETCH_HEAD \ | |
| && git rebase ${HASH}; fi | |
| RUN cd $GOPATH/src/go.skia.org/infra \ | |
| && go install ./... | |
| # Install bazelisk, which we use to load Bazel, which is needed for 'make | |
| # fiddle_secwrap'. | |
| RUN go install github.com/bazelbuild/bazelisk@latest | |
| ENV BAZEL $GOPATH/bin/bazelisk | |
| RUN cd $GOPATH/src/go.skia.org/infra/fiddlek \ | |
| && make fiddle_secwrap | |
| USER root | |
| # USER skia | |
| # | |
| # RUN cd /home/skia/golib/src/go.skia.org/infra/perf \ | |
| # && make |