Запуск тестов selenium/standalone-chrome gitlab-ci

Имеется во такой стейдж

test-dev:
  stage: test
  script:
    - mkdir -p tests/js/screens/diffs
    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
    - docker stop browser_$CI_JOB_ID
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screens
      - tests/js/report
  cache:
    when: always
    paths:
      - storage/framework
      - vendor/ #composer packages
      - node_modules
      - public
    key:
      files:
        - vendor/ #composer packages
        - composer.lock
  tags:
    - test_new_runner

Тот же стейдж но в процессе переработки

test-dev:
#  allow_failure: true
  stage: test
  image: selenium/standalone-chrome
  script:
    - mkdir -p tests/js/screens/diffs
#    - docker run --rm -d --name=browser_$CI_JOB_ID -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
#    - docker stop browser_$CI_JOB_ID
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screens
      - tests/js/report
  cache:
    when: always
    paths:
      - storage/framework
      - vendor/ #composer packages
      - node_modules
      - public
    key:
      files:
        - vendor/ #composer packages
        - composer.lock
  tags:
    - test_new_runner

Хочу избавиться от запуска контейнера так как это иногда вызывает ошибку, но не могу понять как это реализовать при использовании image в нем нет npx


Ответы (1 шт):

Автор решения: Ярослав Юров

Вы можете запустить selenium/standalone-chrome как сервис, а основное изображение будет node, например:

test-dev:
  image: node:16.16
  services:
    - name: selenium/standalone-chrome
      alias: chrome
  stage: test
  script:
     ...

И уже дальше прогонять свои тесты, через удаленный webdriver

→ Ссылка