标签: github-actions

错误:无法解析操作“mygh/my-action@main”,未找到存储库

我在 GitHub 上有两个私有存储库。

mygh/my-action
mygh/my-code
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行mygh/my-code使用自定义操作的工作流程mygh/my-action,但 GitHub Actions 失败并出现以下错误:

Failed to resolve action download info. Error: Unable to resolve action `mygh/my-action@main`, repository not found
Retrying in 12.717 seconds
Failed to resolve action download info. Error: Unable to resolve action `mygh/my-action@main`, repository not found
Retrying in 11.214 seconds
Error: Unable to resolve action `mygh/my-action@main`, repository not found
Run Code Online (Sandbox Code Playgroud)

github-actions

10
推荐指数
2
解决办法
2万
查看次数

在存储库内的分支上使用 pull_request 与 pull_request_target

我想在我们的存储库中使用此 GitHub 操作来检查 PR。我们在同一存储库中创建带有主分支的拉取请求,在该拉取请求中处理反馈/反馈合并,然后合并到主控中。我正在使用pull_request事件触发器来触发操作。

我收到此错误:

错误:需要参数令牌或 opts.auth

当我在虚拟 PR 上测试该操作时,从这样的评论中我认为操作中的这一行没有获得GITHUB_TOKEN.

这篇GitHub 安全实验室帖子中,我看到:

通过 pull_request_target 触发的工作流具有对目标存储库的写入权限。他们还可以访问目标存储库机密。对于来自同一存储库中的分支(但不是来自外部分支)的pull_request 触发的工作流也是如此。后者背后的原因是,如果创建 PR 的用户已经拥有目标存储库的写入权限,则共享存储库机密是安全的。

由此,我的猜测是pull_request应该能够访问该令牌。

我在我们的设置中遗漏了什么吗?

github pull-request github-actions

10
推荐指数
1
解决办法
7593
查看次数

Github 工作流事件触发器同步不起作用?

我有以下 github 工作流程定义:

name: Build

on:
    pull_request:
        types: [ opened, edited, synchronize ]
        paths-ignore:
            - '**.md'
    push:
        branches: 
            - main
jobs:
    get-job:
        name: My job
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v2

            - name: Say hello
              run: |
                    echo Hello!
Run Code Online (Sandbox Code Playgroud)
  1. 我创建了从头分支到基分支的拉取请求。工作流程按预期触发。
  2. 我向总部提交并推动变更。工作流程按预期触发。
  3. 我承诺并将另一项变更推送到总部。工作流程未按预期触发:

同步不起作用

我已阅读文档和其他来源,所有这些都将同步类型描述为我需要使用的类型,以确保 PR 中的每个新更改都会触发工作流程。为什么会间歇性地工作?

git github github-actions

10
推荐指数
1
解决办法
3224
查看次数

GitHub-Actions:创建 GitHub-Release 草稿时触发

为了简化新版本的发布,我想使用 GitHub-Actions 来构建我的项目。这应该通过创建发布草案来触发。

基本上,工作流程应如下所示:

当应创建新版本时,会(手动)创建草稿,其中包含正确的tagnamebody。保存草稿后,该操作应该接管并在当前状态下构建项目,然后将构建的文件添加到发布草稿中,最后发布它。

我不希望它在草稿发布时触发,因为它已经可用,甚至在操作完成构建应该发布的真实文件之前。

我尝试使用releasewith的所有触发器

on: # When to trigger this action
  release: # trigger on all release-events
  workflow_dispatch: # allow manual triggering
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不会在保存草稿时触发,只有在发布时才会触发。

有没有什么方法可以在不发布版本的情况下触发此工作流程,而只能通过创建草稿来触发?

github-api github-actions

10
推荐指数
0
解决办法
2526
查看次数

当我推送新标签时,如何不执行 GitHub Action?

我希望当我们将新标签推送到主存储库时,运行所有测试的 GitHub 操作不会执行,因为当我们合并新分支时,我们之前执行此操作,而当我们推送标签以创建新版本时,此操作会执行再次。

现在这个行动从这个开始

name: Build and Test
on: push
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这将在我们所做的每次推送中执行,我想更改为仅当我们推送提交(没有标签)时才执行此操作。我的近似解决方案是这样的,但我不确定

name: Build and Test
on:
  push:
    branches:
      - '*'
    tags-ignore:
      - '*'
Run Code Online (Sandbox Code Playgroud)

github-actions

10
推荐指数
1
解决办法
3354
查看次数

为什么要在 Github Actions 中分离作业而不是添加步骤?

在此 Github Actions 部署脚本示例中,作者将构建和部署分为不同的作业。
鉴于:

  • 这些作业按顺序运行(需要:构建)
  • 并在同一个运行器上(运行:ubuntu-latest)

分成两个作业而不是简单地在部署作业中插入构建步骤有什么好处?

这是示例:

name: Build and Deploy
on:
  push:
    branches:
      - master

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Install Dependencies
        run: npm install
      - name: Build
        run: npm run build-prod
      - name: Archive Production Artifact
        uses: actions/upload-artifact@master
        with:
          name: dist
          path: dist
  deploy:
    name: Deploy
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Download Artifact
        uses: actions/download-artifact@master …
Run Code Online (Sandbox Code Playgroud)

firebase github-actions

10
推荐指数
1
解决办法
5292
查看次数

Github 操作增量版本推送到 main

我想在 GitHub 操作中使用纯解决方案来增加包的版本。我不想使用 GitHub 市场中的任何现有操作,例如“gh-action-bump-version”。我有这个工作流程,它将增加版本并创建标签。

name: Version Increment

on:
  push:
    branches:
      - main
    tags-ignore:
      - v*

jobs:
  version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          token: ${{ secrets.ACCESS_TOKEN }}
      - run: git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
      - run: git config user.name "$GITHUB_ACTOR"
      - run: npm version minor -m "v%s"
      - run: VERSION=$(node -p "require('./package.json').version")
      - run: git tag ${VERSION}
      - run: git push origin --tags
      - run: git push origin --follow-tags
Run Code Online (Sandbox Code Playgroud)

它有效,但由于最后一行,它也会导致操作的循环运行。我知道我可以使用像“[RELEASE]”这样的自定义消息,并放置一个“if”条件并跳过这些提交。但我的问题是,是否有更好的解决方案可以从此操作中跳过这些提交并且不使用“if”条件?因为“标签忽略”显然不起作用。

github-actions

10
推荐指数
2
解决办法
1万
查看次数

Github Actions:由于路径中的文件未更改,因此未运行所需的状态检查

假设我有一个这样的拉取请求。

name: Workflow

on:
   pull_request:
     paths:
       - '**/*.h'
       - '**/*.c'
Run Code Online (Sandbox Code Playgroud)

master通过将 GitHub Actions 配置为要求在拉取请求可合并之前通过状态检查来保护分支。

现在我更新自述文件。我打开了针对 的拉取请求master。拉取请求是不可合并的,因为状态检查永远不会返回成功,也不会返回失败。

建议?

github github-actions

10
推荐指数
1
解决办法
3601
查看次数

npm 发布的 github 操作失败

目标

我已手动将开源库发布到registry.npmjs.org,并且我希望将来的版本能够使用GitHub Actions 自动发布。我之前没有 GitHub 操作的经验。

到目前为止我做了什么

我已将标准 GitHub 操作放入 GitHub 为此目的提供的存储库中(未更改)。在最后一行中,它从npmjs.com获取自动化令牌,我已在存储库上将其定义为环境机密NPM_TOKEN。它显示在存储库的秘密页面中。

我面临错误

Run npm publish
...
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in.
npm ERR! need auth You need to authorize this machine using `npm adduser`

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2022-01-08T00_20_52_834Z-debug.log
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

尽管进行了大量的网络搜索,但我还是不明白

  • 有没有办法验证自动化令牌是否已被拾取? …

npm-publish github-actions

10
推荐指数
1
解决办法
3517
查看次数

带有 GitHub Actions 的 Amazon ECS 在部署 ECS 任务定义时卡住

我正在使用GitHub 操作模板的 Amazon ECS“部署任务定义”操作来部署我的应用程序。有时会卡在这一步:

部署 Amazon ECS 任务定义

在终止之前,它可能会卡住很长时间(30 - 60 分钟)。我可以登录 ECS 中的 AWS 控制台并查看它创建的任务定义,然后从新创建的任务定义手动运行新任务。结果很好,因为我看到任务成功运行。

当我查看日志以了解为什么它首先卡住时,我看到了错误消息,例如:

(service myService) 无法放置任务,因为没有容器实例满足其所有要求。最接近的匹配(容器实例 id23244214)没有足够的可用 CPU 单元。

(service myService) 无法放置任务,因为没有容器实例满足其所有要求。最接近的匹配(容器实例 id23244214)没有足够的可用内存。

我的 EC2 实例上有 2 个 vCPU 和 2 (GiB) 内存,并且我的任务定义没有超出该限制。由于我可以在 ECS 仪表板中创建任务,因此 EC2 实例似乎并不缺乏内存或 VCPU。

最后,当我看到类似上面两条的错误消息时,我尝试通过 GitHub 再次重新部署。GitHub Action 正常传递所有作业,但它再次卡在任务定义步骤上。然后,在 Amazon ECS 控制台中最后一次内存/CPU 分配不足后,我停止接收任何事件日志。

它最终失败并显示错误消息:

错误:资源未处于 servicesStable 状态

这是我的任务

{
  "ipcMode": null,
  "executionRoleArn": null,
  "containerDefinitions": [
    {
      "dnsSearchDomains": null,
      "environmentFiles": null,
      "logConfiguration": null,
      "entryPoint": null,
      "portMappings": [
        {
          "hostPort": …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-ecs github-actions ecs-taskdefinition

10
推荐指数
1
解决办法
6751
查看次数