Lerna всегда перечисляет все пакеты, готовые к публикации sh при выполнении рабочего процесса действий Github - PullRequest
2 голосов
/ 12 февраля 2020

Lerna не правильно определяет изменение пакетов во время выполнения рабочего процесса действий Github.

  1. Если я не внесу ни одного пакета, связанного с изменениями, зафиксируйте и выполните lerna updated локально. он сообщает мне Не найдено измененных пакетов , что является правильным и ожидаемым.

  2. Если я внесу изменения, связанные с пакетом, подтвердите и запустите lerna updated локально. он говорит мне, что нашел x готовых к публикации пакетов sh, что также правильно и ожидаемо.

Однако, если я пу sh, то сделаю коммит на основании 1 or 2. шаг, который я запускаю lerna updated в моем рабочем процессе действий на github, всегда сообщает / выводит список всех доступных пакетов для публикации sh, что неверно.

Мне интересно, почему и как чтобы исправить это ???

вот что я вижу локально, если я не внес ни одного пакета связанных изменений

lerna notice cli v3.20.2
lerna info versioning independent
lerna info Looking for changed packages since @xxx/bar@2.3.4
lerna info No changed packages found

вот что я см. в журнале рабочего процесса после того, как все пакеты, связанные с изменениями, не были добавлены в Github

> lerna updated -l

lerna notice cli v3.20.2
lerna info versioning independent
lerna info Assuming all packages changed
@xxx/bar  v2.3.4 packages/Bar
@xxx/foo  v1.4.4 packages/Foo
@xxx/hulk v1.0.4 packages/Hulk
lerna success found 3 packages ready to publish

вот мои рабочие процессы

name: Publish
on:
  push:
    branches:
      - master
jobs:
  unit-test:
    name: UnitTest
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 12
      - run: npm ci
      - run: npm test

  publish:
    name: Publish NPM Packages
    needs: unit-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: npm ci
      - run: git config --global user.email "xxx"
      - run: git config --global user.name "xxx"
      - run: npm run updated
        env:
          NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}

вот мой пакет. json

{
  "name": "root",
  "devDependencies": {
    "jest": "^25.1.0",
    "lerna": "^3.20.2"
  },
  "scripts": {
    "updated": "lerna updated -l",
    "test": "jest"
  }
}

вот моя настройка lerna

{
  "packages": [
    "packages/*"
  ],
  "version": "independent",
  "command": {
    "publish": {
      "allowBranch": "master",
      "conventionalCommits": true,
      "message": "chore(release): updated release notes and package versions"
    }
  }
}

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

После часов отладки. Я нашел ответ сам, и спасибо @peterevans за подсказку

Вы должны объединить оба

, так что вся история и тег git открыты для lerna.

0 голосов
/ 15 апреля 2020

Wow - не могу поверить, что я наконец-то нашел решение той же проблемы - огромное спасибо!

Я вижу это как большую проблему с действиями github (в частности, @ actions / checkout), и поэтому я Я сообщил им здесь: https://github.com/actions/checkout/issues/217

Я также сообщил lerna людям здесь: https://github.com/lerna/lerna/issues/2542

и semantic-release человек здесь: https://github.com/semantic-release/semantic-release/issues/1526

Еще раз спасибо! Вы помогли мне сэкономить много времени и исправить неприятную проблему, и я надеюсь, что помогу и другим в этом. Приветствия

...