ci: use image based cache
This commit is contained in:
parent
51a0bd2e75
commit
784453cf9d
10
.buildkite/dockerfiles/docker-compose.yml
Normal file
10
.buildkite/dockerfiles/docker-compose.yml
Normal file
@ -0,0 +1,10 @@
|
||||
version: '3'
|
||||
services:
|
||||
windows-env:
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: ./.buildkite/dockerfiles/windows-env.Dockerfile
|
||||
windows-test:
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: ./.buildkite/dockerfiles/windows-test.Dockerfile
|
32
.buildkite/dockerfiles/linux-env.Dockerfile
Normal file
32
.buildkite/dockerfiles/linux-env.Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
ARG target=node:10.12
|
||||
FROM $target
|
||||
# Redeclare target ARG after FROM to inherit use value from the first ARG.
|
||||
# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
|
||||
ARG target
|
||||
|
||||
# Install Bazel Ubuntu pre-requisites if it's the default target.
|
||||
# Subsequent targets will already have it installed.
|
||||
# https://docs.bazel.build/versions/master/install-ubuntu.html
|
||||
RUN if [ "$target" = "node:10.12" ] ; then apt-get update; apt-get -y install pkg-config zip g++ zlib1g-dev unzip python ; fi
|
||||
# Chrome prerequisites
|
||||
RUN if [ "$target" = "node:10.12" ] ; then apt-get -y install libx11-xcb1 libxrandr2 libasound2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0 libnss3 libxss1 ; fi
|
||||
|
||||
# Setup files.
|
||||
WORKDIR /src
|
||||
COPY ./ /src
|
||||
COPY .circleci/bazel.rc /etc/bazel.bazelrc
|
||||
|
||||
# Workaround symlink when building image on Windows.
|
||||
RUN rm /src/packages/upgrade/static/src
|
||||
RUN ln -s ../src /src/packages/upgrade/static/src
|
||||
|
||||
# Install dependencies and run tests.
|
||||
RUN yarn install --frozen-lockfile --non-interactive
|
||||
# RUN yarn bazel test //tools/ts-api-guardian:all
|
||||
RUN yarn bazel build //... --build_tag_filters=-ivy-only --test_tag_filters=-ivy-only,-local
|
||||
# RUN yarn bazel build --define=compile=aot --build_tag_filters=-no-ivy-aot,-fixme-ivy-aot --test_tag_filters=-no-ivy-aot,-fixme-ivy-aot //...
|
||||
# RUN yarn bazel test //... --build_tag_filters=-ivy-only --test_tag_filters=-ivy-only,-local
|
||||
# RUN yarn test-ivy-aot //...
|
||||
|
||||
# docker build -t angular:latest .
|
||||
# docker build . --build-arg target=angular:latest
|
21
.buildkite/dockerfiles/windows-test.Dockerfile
Normal file
21
.buildkite/dockerfiles/windows-test.Dockerfile
Normal file
@ -0,0 +1,21 @@
|
||||
# Use the a previous image as source, or bootstrap to the default image.
|
||||
ARG target=filipesilva/node-bazel-windows:0.0.2
|
||||
FROM $target
|
||||
WORKDIR /src
|
||||
|
||||
# Copy package.json and yarn.lock before the other files.
|
||||
# This allows docker to cache these steps even if source files change.
|
||||
COPY ./package.json /src/package.json
|
||||
COPY ./yarn.lock /src/yarn.lock
|
||||
RUN yarn install --frozen-lockfile --non-interactive --network-timeout 100000
|
||||
|
||||
# Copy files.
|
||||
COPY ./ /src
|
||||
|
||||
# Setup.
|
||||
COPY .circleci/bazel.rc /etc/bazel.bazelrc
|
||||
RUN del packages\upgrade\static\src
|
||||
RUN mklink /d packages\upgrade\static\src ..\src
|
||||
|
||||
# Run tests.
|
||||
RUN yarn bazel test //tools/ts-api-guardian:all --noshow_progress
|
@ -1,10 +1,19 @@
|
||||
steps:
|
||||
- label: windows-test
|
||||
commands:
|
||||
- "yarn install --frozen-lockfile --non-interactive --network-timeout 100000"
|
||||
- "yarn bazel test //tools/ts-api-guardian:all --noshow_progress"
|
||||
plugins:
|
||||
- docker#v2.1.0:
|
||||
image: "filipesilva/node-bazel-windows:0.0.2"
|
||||
- docker-compose#v2.6.0:
|
||||
build: windows-test
|
||||
config: .buildkite/dockerfiles/docker-compose.yml
|
||||
args:
|
||||
- target=gcr.io/internal-200822/angular-windows:master
|
||||
agents:
|
||||
windows: true
|
||||
- wait
|
||||
- label: windows-update-image
|
||||
branches: master
|
||||
plugins:
|
||||
- docker-compose#v2.6.0:
|
||||
push: windows-test:gcr.io/internal-200822/angular-windows:master
|
||||
config: .buildkite/dockerfiles/docker-compose.yml
|
||||
agents:
|
||||
windows: true
|
||||
|
@ -8,6 +8,8 @@
|
||||
# We recommend machine type n1-highcpu-16 (16 vCPUs, 14.4 GB memory).
|
||||
# Use a windows boot disk with container support such as
|
||||
# "Windows Server version 1803 Datacenter Core for Containers".
|
||||
# Give it push access to the Container Registry by clicking "Set access for each API" and
|
||||
# setting "Storage" to "Read Write".
|
||||
# Give it a name, then click "Create".
|
||||
|
||||
# VM setup:
|
||||
@ -56,6 +58,15 @@ Invoke-WebRequest -Uri https://github.com/git-for-windows/git/releases/download/
|
||||
Add-Path "C:\git\bin"
|
||||
Remove-Item git.exe
|
||||
|
||||
# Install Docker Compose 1.23.2
|
||||
# https://docs.docker.com/compose/install/#install-compose
|
||||
Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\docker\docker-compose.exe
|
||||
|
||||
# Add the gcloud Docker credential helper to the local system account (used by NSSM)
|
||||
# https://cloud.google.com/container-registry/docs/advanced-authentication
|
||||
gcloud auth configure-docker --quiet
|
||||
Copy-Item C:\Users\angular\.docker -Destination C:\Windows\System32\config\systemprofile\ -Recurse
|
||||
|
||||
# Download NSSM (https://nssm.cc/) to run the BuildKite agent as a service.
|
||||
Write-Host "Downloading NSSM."
|
||||
Invoke-WebRequest -Uri https://nssm.cc/ci/nssm-2.24-101-g897c7ad.zip -OutFile nssm.zip
|
Loading…
x
Reference in New Issue
Block a user