Как запустить тест в Gitlab для приложения nodejs - PullRequest
0 голосов
/ 20 февраля 2019

Я новичок в gitlab, поэтому не имею большого знания об этом.

Я пытаюсь настроить gitlab для запуска теста перед сборкой образа.Я настроил частного бегуна, который настроен правильно, и я могу создавать образы, но он не работает, если я запускаю команду npm для проверки кода.Вот мой gitlab-ci.yml файл.

image: docker:latest
variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
services:
- docker:dind
before_script:
  - docker login -u gitlab-ci-token -p "$CI_BUILD_TOKEN" "$CI_REGISTRY"

stages:
  - build-container-test
  - test-run


build-container-test:
  stage: build-container-test
  script:
    - docker build -t "$IMAGE_TAG" .
    - docker push "$IMAGE_TAG"
  only:
    - test

test-run:
  stage: test-run
  script:
    - npm run test
  only:
    - test

Это ошибка, которую я получаю при ее запуске.enter image description here

Нужно ли отдельно устанавливать npm на gitlab runner, чтобы запустить его, или я что-то здесь упустил?

1 Ответ

0 голосов
/ 20 февраля 2019

Простой пример файла gitlab-ci для запуска теста в CI:

image: node:8.9.4

stages:
  - npm
  - test

npm:
  stage: npm
  script:
    - npm config set registry ${CI_NPM_REGISTRY}
    - npm install
  cache:
    paths:
      - node_modules/
  artifacts:
    expire_in: 1 days
    when: on_success
    paths:
      - node_modules/

test:
  stage: test
  dependencies:
    - npm
  script:
    - npm test

ОБНОВЛЕНИЕ

Я разделил конвейеры на два, первыйодна предназначена для установки всех зависимостей, в этом задании используются артефакты , артефакты предназначены для совместного использования данных между заданиями (см. документацию ).Затем в тестовом задании вы можете запустить тесты.

Отвечая на вопрос о переменных среды:

  • Да, вы можете использовать переменные среды, перейти к настройкам CI / CD и вПеременные окружения, которые вы можете определить своими переменными и пометить их как защищенные или нет (для использования этих переменных env см. документацию )
...