Search code examples
google-chromegitlabgitlab-ciangular-dart

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


I need to test angular dart components in chrome. Test should be executed in gitlab ci job. How can I achive this?


Solution

  • To achive this you can:

    1. Create mew docker image with chrome and dart
    2. Upload this image to gitlab container registry
    3. Use this image in gitlab pipeline job

    Here is Docker file:

    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
    

    And here is job:

    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