From 20346ff1924e768e0b3ff02f1539514263bf0e77 Mon Sep 17 00:00:00 2001 From: Joey Perrott Date: Fri, 3 Apr 2020 13:05:46 -0700 Subject: [PATCH] build: remove ngcontainer Docker (#36421) ngcontainer Dockerfile was noted as deprecated ~2 years ago, we no longer rely on it anymore nor do we publish it. PR Close #36421 --- .pullapprove.yml | 1 - tools/ngcontainer/Dockerfile | 66 ------------------------------------ tools/ngcontainer/README.md | 55 ------------------------------ tools/ngcontainer/publish.sh | 13 ------- 4 files changed, 135 deletions(-) delete mode 100644 tools/ngcontainer/Dockerfile delete mode 100644 tools/ngcontainer/README.md delete mode 100755 tools/ngcontainer/publish.sh diff --git a/.pullapprove.yml b/.pullapprove.yml index 40cc9f84f2..f0c6cc9955 100644 --- a/.pullapprove.yml +++ b/.pullapprove.yml @@ -1009,7 +1009,6 @@ groups: 'tools/circular_dependency_test/**', 'tools/contributing-stats/**', 'tools/gulp-tasks/**', - 'tools/ngcontainer/**', 'tools/npm/**', 'tools/npm_integration_test/**', 'tools/rxjs/**', diff --git a/tools/ngcontainer/Dockerfile b/tools/ngcontainer/Dockerfile deleted file mode 100644 index 33ba439296..0000000000 --- a/tools/ngcontainer/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -FROM circleci/node:10.9.0-browsers - -USER root - -### -# Bazel install -# See https://bazel.build/versions/master/docs/install-ubuntu.html#using-bazel-custom-apt-repository-recommended -# Note, only the latest release is available, see https://github.com/bazelbuild/bazel/issues/4947 -RUN BAZEL_VERSION="0.18.0" \ - && wget -q -O - https://bazel.build/bazel-release.pub.gpg | apt-key add - \ - && echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" > /etc/apt/sources.list.d/bazel.list \ - && apt-get update \ - && apt-get install -y bazel=$BAZEL_VERSION \ - && rm -rf /var/lib/apt/lists/* - -### -# Brotli compression -# Not available on backports so we have to pull from Debian 9 -# See https://packages.debian.org/search?keywords=brotli -RUN echo "deb http://deb.debian.org/debian stretch main contrib" > /etc/apt/sources.list.d/stretch.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends brotli/stretch - -### -# Buildifier -# TODO(alexeagle): remove this when all users use their locally built buildifier -# BUILD file formatter -# 'bazel clean --expunge' conserves size of the image -RUN git clone https://github.com/bazelbuild/buildtools.git \ - && (cd buildtools \ - && bazel build //buildifier \ - && cp bazel-bin/buildifier/linux_amd64_stripped/buildifier /usr/local/bin/ \ - && bazel clean --expunge \ - ) && rm -rf buildtools - -### -# Skylint -# TODO(alexeagle): remove this when all users use their locally built skylint -# .bzl file linter -# Follows readme at https://github.com/bazelbuild/bazel/blob/master/site/docs/skylark/skylint.md#building-the-linter -# 'bazel clean --expunge' conserves size of the image -RUN git clone https://github.com/bazelbuild/bazel.git \ - && (cd bazel \ - && bazel build //src/tools/skylark/java/com/google/devtools/skylark/skylint:Skylint_deploy.jar \ - && cp bazel-bin/src/tools/skylark/java/com/google/devtools/skylark/skylint/Skylint_deploy.jar /usr/local/bin \ - && bazel clean --expunge \ - ) && rm -rf bazel - -USER circleci - -### -# Fix up npm global installation -# See https://docs.npmjs.com/getting-started/fixing-npm-permissions -RUN mkdir ~/.npm-global \ - && npm config set prefix '~/.npm-global' \ - && echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.profile - -### -# This version of ChromeDriver works with the Chrome version included -# in the circleci/*-browsers base image above. -# This variable is intended to be used by passing it as an argument to -# "postinstall": "webdriver-manager update ..." -ENV CHROMEDRIVER_VERSION_ARG "--versions.chrome 2.41" - -WORKDIR /home/circleci -ENTRYPOINT ["/bin/bash", "--login"] diff --git a/tools/ngcontainer/README.md b/tools/ngcontainer/README.md deleted file mode 100644 index d6917ffd20..0000000000 --- a/tools/ngcontainer/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# ngcontainer - -This docker container provides everything needed to build and test Angular applications: - -**Note**: This docker image will be no longer actively updated. Consider using other Docker -images that come with Node installed. - -- node 10.9.0 -- npm 6.2.0 -- yarn 1.9.2 -- Java 8 (for Closure Compiler and Bazel) -- Bazel build tool v0.18.0 - http://bazel.build -- Google Chrome 69.0.3497.81 -- Mozilla Firefox 47.0.1 -- xvfb (virtual framebuffer) for headless testing -- Brotli compression utility, making smaller files than gzip - -By using this, you avoid installation steps in your CI scripts and get a more consistent dev environment. - -## Example - -See https://github.com/angular/closure-demo/blob/master/.circleci/config.yml -where this container is used in CircleCI. - -To run locally: - -``` -$ docker run -it --rm angular/ngcontainer -``` - -## Running tests - -Any program that needs to talk to a browser (eg. protractor) should be run under xvfb when executing on a headless machine like on CI. The nice way to factor this is to have your top-level test command which you run locally: - -``` -$ yarn test -``` - -Then in your CI configuration, you'd run - -``` -$ xvfb-run -a yarn test -``` - -## For Developers - -Install Docker on your machine in order to build/pull/push this image. - -Log in to `hub.docker.com` as `teamangular` using the following command: - -`$ docker login` - -Publish a new version: - -`$ tools/ngcontainer/publish.sh [tag eg. 0.2.3]` diff --git a/tools/ngcontainer/publish.sh b/tools/ngcontainer/publish.sh deleted file mode 100755 index c3ee330f08..0000000000 --- a/tools/ngcontainer/publish.sh +++ /dev/null @@ -1,13 +0,0 @@ -set -e - -TAG=$1 -if [ -z $TAG ] - then echo "usage: $0 [tag]"; exit 1 -fi - -docker build . -t angular/ngcontainer:$TAG -docker tag angular/ngcontainer:$TAG angular/ngcontainer:latest -docker push angular/ngcontainer:$TAG -docker push angular/ngcontainer:latest -git tag -a "ngcontainer_${TAG}" -m "published to docker" -git push --tags