如何在gitlab-ci中的chrome中执行angular飞镖测试

How to execute angular dart test in chrome in gitlab-ci

我需要在 chrome 中测试 angular 个飞镖组件。测试应该在 gitlab ci 作业中执行。我怎样才能做到这一点?

要实现这一点,您可以:

  1. 使用 chrome 和 dart
  2. 创建新 docker 图片
  3. 将此图片上传到 gitlab container registry
  4. 在 gitlab 管道作业中使用此图像

这里是 Docker 文件:

FROM google/dart:2.5.0

USER root

# Install deps + add Chrome Stable + purge all the things
RUN apt-get update && apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    unzip \
    zip \
    --no-install-recommends \
    && curl -sSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
    && echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \
    && apt-get update && apt-get install -y \
    google-chrome-stable \
    --no-install-recommends \
    && apt-get purge --auto-remove -y curl gnupg \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /
RUN mkdir chromedriver && cd chromedriver \
    && wget https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip \
    && unzip chromedriver_linux64.zip \
    && rm chromedriver_linux64.zip \
    && ln -s /usr/bin/google-chrome-stable /usr/bin/chrome
ENV CHROME_DRIVER_PATH=/chromedriver/chromedriver

这是工作:

build_web:
  stage: client_build
  image: registry.gitlab.com/your_org/your_proj/image_name
  script:
    - pub get
    - pub run build_runner test --fail-on-severe --define "build_web_compilers|entrypoint=compiler=dart2js" --delete-conflicting-outputs -- -p chrome
    - pub run build_runner build --define "build_web_compilers|entrypoint=compiler=dart2js" --delete-conflicting-outputs --output web:build
  only:
    - master