Установка пакета NPM из gitlab не загружает все файлы репо только на CI - PullRequest
0 голосов
/ 19 октября 2018

Я использую GitLab в качестве репозитория своего пакета npm.Проект, использующий этот пакет, использует ssh url и нацеливается на определенный тег.Запись в потребляющих проектах package.json выглядит следующим образом: "my-package": "git+ssh://git@gitlab.com:company/repo.git#tag"

Теперь, чтобы уточнить, это прекрасно работает на моем компьютере разработчика.Я могу стереть файл node_modules и package-lock.json, очистить кэш npm и выполнить успешную сборку и установку npm i и my-package.

package.json для проекта my-packageимеет скрипт prepare, используемый для сборки пакета при установке.Выглядит это так:

"scripts": {
    "prepare": "npm run build",
    "clean": "npx rimraf lib",
    "build": "npm run clean && tsc && npx gulp"
  },

my-package находится в закрытом репо, и поэтому, чтобы решить начальные проблемы с разрешениями, мне пришлось создать ключи ssh, я добавил открытый ключ в my-package GitLabrepo в разделе Deploy Keys, согласно этим инструкциям https://docs.gitlab.com/ee/ssh/#deploy-keys.

Файл .gitlab-ci.yml в потребляющем проекте включает в себя закрытый ключ в ssh-agent, например:

before_script:
  - apk update
  - 'which ssh-agent || ( apk update -y && apk add openssh-client -y )'
  - mkdir -p ~/.ssh
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | ssh-add -
  - ssh-keyscan -H gitlab.com >> ~/.ssh/known_hosts

И у меня нет проблем с разрешениями.Стадия тестирования CI-проектов, выполняющих задачи, выглядит следующим образом:

test:
  stage: test
  script:
    - apk update
    - apk --no-cache add --update nodejs nodejs-npm git
    - npm install
    - ls node_modules/my-package/
    - npm run lint
    - npm run test

Странно то, что npm install не загружает и не собирает my-package здесь (как это происходит на моем компьютере), онУстанавливает только файл package.json и readme.Результат ls node_modeuls/my-package на платформе ci, приведенной выше, приводит к следующему:

$ ls node_modules/my-package/
package.json
readme.md

и, конечно, поскольку мой пакет не загружается, тесты не запускаются с использованием этого пакета.

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

Есть мысли?

...