Search code examples
dockerimagegitlab-cigitlab-ci-runner

How I can run selenium?


I've stage, where I make tests for our app

test-dev:
  stage: test
  image: selenium/standalone-chrome
  image: node:14.15.0-stretch
  script:
    - npm i
    - npm run prod
    - /opt/bin/start-selenium-standalone.sh
    - npx mocha tests/js/screenshots-* --timeout 50000
    - npx playwright test tests/js/pw_*
    - php artisan test
  artifacts:
    when: always
    name: $CI_COMMIT_SHA
    untracked: true
    paths:
      - tests/js/screenshots/
      - tests/js/screens/
      - tests/js/report/
  cache:
    untracked: true
    when: always
    paths:
      - tests/js/screenshots/
      - tests/js/screens/
      - tests/js/report/
      - storage/
      - vendor/ #composer packages
      - node_modules
      - public

But the system can't find start-selenium-standalone.sh, in the original docker image it is in /opt/bin How I can launch it?


Solution

  • I wrote next Dockerfile and use them:

    Dockerfile

    FROM ubuntu:latest
    FROM node:14.15.0-stretch AS node
    RUN npm i libnpx
    FROM selenium/standalone-chrome:latest as sel
    
    USER root
    #selenium copy
    #COPY --from=sel /opt/bin/start-selenium-standalone.sh /opt/bin/start-selenium-standalone.sh
    #COPY --from=sel /etc/supervisor/conf.d/ /etc/supervisor/conf.d/
    #COPY --from=sel /opt/bin/generate_config /opt/bin/generate_config
    #COPY --from=sel /opt/selenium/config.toml /opt/selenium/config.toml
    #COPY --from=sel /opt/selenium/browser_name /opt/selenium/browser_name
    #ENV SE_RELAX_CHECKS true
    EXPOSE 4444
    EXPOSE 7900
    
    #Nodejs
    #COPY --from=node / /
    COPY --from=node /usr/local/lib/ /usr/local/lib/
    COPY --from=node /usr/local/bin/ /usr/local/bin/
    COPY --from=node /usr/local/bin/ /usr/local/bin/
    RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
    
    
    LABEL miekrif uzvar-selenium
    
    CMD ["bash"]
    

    In following job:

    test-dev:
      stage: test
      image: miekrif/uzavr-selenium:latest
      script:
        - nohup /opt/bin/entry_point.sh &
        - npx mocha tests/js/screenshots-* --timeout 50000
        - npx playwright test tests/js/pw_*
        - php artisan test
      artifacts:
        when: always
        name: $CI_COMMIT_SHA
        untracked: true
        paths:
          - tests/js/screenshots/
          - tests/js/screens/
          - tests/js/report/
      cache:
        untracked: true
        when: always
        paths:
          - tests/js/screenshots/
          - tests/js/screens/
          - tests/js/report/
          - storage/
          - vendor/ #composer packages
          - node_modules
          - public
      tags:
        - test_new_runner
      only:
        - ned_runner #Затычка бранча чтобы ранер не запускался
    #    - develop