gpt4 book ai didi

github - Lerna总是在运行Github操作的工作流程时列出所有准备发布的软件包

转载 作者:行者123 更新时间:2023-12-03 15:35:29 24 4
gpt4 key购买 nike

Lerna在Github操作的工作流程运行期间无法正确检测到软件包更改。

  • 如果我不进行与包相关的更改,请在本地提交并运行lerna updated。它告诉我找不到正确且预期的软件包。
  • 如果我进行与软件包相关的更改,请在本地提交并运行lerna updated。它告诉我找到了准备发布的 x软件包,这也是正确且预期的。

  • 但是,如果我基于1 or 2推送提交。我在github Action 工作流中运行lerna updated的步骤总是告诉/列出我所有可发布的软件包,这是错误的。

    我想知道为什么以及如何解决它?

    如果我没有进行任何与软件包相关的更改,那么这是我在本地看到的内容
    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的none包相关的更改之后在工作流日志上看到的内容
    > 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}}

    这是我的package.json
    {
    "name": "root",
    "devDependencies": {
    "jest": "^25.1.0",
    "lerna": "^3.20.2"
    },
    "scripts": {
    "updated": "lerna updated -l",
    "test": "jest"
    }
    }


    这是我的角色设置
    {
    "packages": [
    "packages/*"
    ],
    "version": "independent",
    "command": {
    "publish": {
    "allowBranch": "master",
    "conventionalCommits": true,
    "message": "chore(release): updated release notes and package versions"
    }
    }
    }

    最佳答案

    经过数小时的调试。我自己找到了答案,并感谢@peterevans的提示

    你必须结合两者

  • fetch-depth: 0
  • run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*

  • 这样所有git的历史记录和标签都会暴露给lerna。

    关于github - Lerna总是在运行Github操作的工作流程时列出所有准备发布的软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180630/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com