当前位置: 首页 > 知识库问答 >
问题:

在GitHub Actions工作流中未找到使用语义释放-monorepo的回购

焦宏硕
2023-03-14

我正在创建GitHub操作工作流,以构建npm包并将其发布到GitHub包。repo是一个包含多个包的monorepo,因此我使用语义发布monorepo工具。然而,发布的步骤失败了,我不知道为什么。

我的GitHub操作工作流文件如下(略微精简)

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    env:
      GH_TOKEN: ${{ secrets.MY_PAT }}

    steps:
      - name: Checkout repo
        uses: actions/checkout@v2

        run: |
          yarn install
          yarn build

      - name: Setup node for publishing to Github packages
        uses: actions/setup-node@v2
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          node-version: "12.x"
          registry-url: "https://npm.pkg.github.com"

      - name: Yarn publish packages
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 
        run: |
          yarn publish-packages

warn publish packages运行一个脚本,执行lerna命令进行语义发布

lerna exec-------------------------------------------------------------------------------------------------------------

我已确定回购协议的一揽子计划。json以及包。每个包的json都有正确的存储库url,https://github.com/owner/repo.git。“我的个人访问令牌”具有回购、写入和删除包的权限。

无论我更改了什么配置,该步骤都会失败,出现以下消息:

命令"git press--dry-run--no-验证https://[secure]@github.com/xxx/xxx.gitHEAD: Development"失败,错误消息为远程:未找到存储库。26致命:未找到存储库'https://github.com/xxx/xxx.git/'。

第二条信息是

在远程Git存储库中的URLhttps://[secure]@github.com/xxx/xxx.git,语义释放不能将版本标签推送到分支Development

我尝试过的其他事情:

  • 在阅读说明“GitHub软件包仅支持范围内的npm软件包”的GH文档后,将scope=“@xxx”添加到安装节点步骤中
  • 根据语义发布文档,我尝试将GH_令牌、GITHUB_令牌和NPM_令牌设置为机密中我的PAT或GITHUB_令牌的每个组合。我相信医生说只有PAT得到支持。此外,NPM_令牌不应该是必需的,因为在设置节点操作中使用注册表url会创建一个。默认情况下使用NODE\u AUTH\u令牌的npmrc文件
  • 这里有一个几乎类似的问题,但添加了。git到他的存储库url似乎已经为他修复了它
  • Github文档说我应该能够使用PAT或Github_令牌作为身份验证令牌。npmrc文件,所以这不应该是问题所在

我已经浏览了语义发布、语义发布monorepo、GitHub操作和GitHub包的文档。如果有任何其他信息我需要包括,请让我知道。


共有1个答案

宗政楚
2023-03-14

经过更多的尝试和错误,我发现了原因。如果我的理解是正确的,Github工作流程将自动使用可用的GITHUB_TOKEN秘密在使用操作/签出签出回购的步骤中与Github进行身份验证。然后,它将此步骤中的凭据持久化,并在发布包的步骤中重用它们,即使我将个人访问令牌作为环境变量注入到该步骤。

最后,修复方法是在第一步中使用持久凭证选项,如下所示

steps:
  - name: Checkout repo
    uses: actions/checkout@v2
    with:
      persist-credentials: false

然后在最后一步中使用个人访问令牌通过GitHub进行身份验证,就像我提到的,我认为这应该是我问题中正确的方法,因为语义发布文档声明只支持PAT身份验证。

 类似资料:
  • 问题内容: 我正在使用以下功能下载小于20MB的文件。它将全部内容读取到内存中,因为另一个功能必须先对字节执行工作,然后才能将其写入磁盘。 这可以正常工作,但是所有内存都在系统上消耗了。 是否可以在其他功能处理完之后释放使用的内存,以使内存使用量不会大于当前正在处理的字节数? 问题答案: 您可能会触发gc使用释放未使用的对象,并且可能敦促Go运行时使用释放内存到OS ,但是所有这些都只是在扑救。编

  • 我有一个Springboot应用程序,Mule作为微服务在docker容器中运行。即使空闲时也需要大约700MB。注意到JVM分配了380 MB的堆,这是使用参数提供的最大堆。虽然分配了最大堆,但微服务在空闲时只使用大约50 MB。问题是如何从JVM释放未使用的内存。 似乎减少MaxHeapFreeRatio我们可以要求JVM在有更多可用内存时收缩。然而没有太大区别,JVM也没有释放内存。但是当我

  • 我试图与WebClient一起工作,但它给我带来了错误,所以我检查了几个论坛(包括这一个),他们告诉我应该放在哪里 在文件的顶部: 在我想使用WebClient的地方之后: 我得到了这个错误:

  • 我正试图通过遵循本教程,使用GitHub操作构建docker映像并将其推送到Amazon ECR 我正在尝试为此repo设置GitHub操作,因此我在<代码>中创建了一个新的工作流。github/workflows目录。 DockerFile已成功创建并生成。 现在,在创建

  • 假设我有用不同语言编写的工人(Java

  • 本文向大家介绍工作中常用到的ES6语法,包括了工作中常用到的ES6语法的使用技巧和注意事项,需要的朋友参考一下 什么是ES6?   ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。   ECMAScript和JavaScript到底是什么关系?很多初学者会感到