我正在从经典纱线迁移到版本 4,并遇到了版本碰撞 CI 作业的问题,因为现代纱线版本中不再存在
--no-commit-hooks
和 --no-git-tag-version
标志。
这是我用来提升版本的 Gitlab CI 作业的一部分(使用经典的纱线):
script:
- ... some preparing scripts
- git tag -a v$APP_VERSION -m "v$APP_VERSION"
- yarn version --patch --no-commit-hooks --no-git-tag-version
- git pull origin $CI_COMMIT_REF_NAME -X theirs --no-commit && git commit -a -m "chore(release): v$APP_VERSION"
- git push -o ci.skip --tags origin HEAD:$CI_COMMIT_REF_NAME
分解:
使用纱线 v4 执行此操作的替代方法是什么?
version
CLI文档显示该命令只有一些基本的配置选项。我还在 berry 存储库中打开了讨论,但到目前为止还没有回复。
所以,看起来我一直在寻找上述挂钩的替代品,但尚未测试
yarn version
的行为。 yarn version
提升版本,但不创建标签或提交,所以这很好。它还运行 yarn install
,这不太好。最后,下面的代码可以替换我一直在yarn classic中使用的配置:
script:
- ... some preparing scripts
- git tag -a v$APP_VERSION -m "v$APP_VERSION"
- yarn version patch
- git pull origin $CI_COMMIT_REF_NAME -X theirs --no-commit && git commit -a -m "chore(release): v$APP_VERSION" --no-verify
- git push -o ci.skip --tags origin HEAD:$CI_COMMIT_REF_NAME --no-verify
使用
no-verify
跳过运行 git hooks。防止 yarn install
也很好,但我找不到解决方案,并且针对同一问题有一个未答复的讨论:https://github.com/yarnpkg/berry/discussions/4551 .