我正在尝试在 GPR(Github 包注册表)上上传一个包。我登录成功:
npm login --registry=https://npm.pkg.github.com
Run Code Online (Sandbox Code Playgroud)
然后运行这些命令:
npm set registry https://npm.pkg.github.com/
npm publish
Run Code Online (Sandbox Code Playgroud)
返回此错误:
npm ERR! 404 Not Found - PUT https://npm.pkg.github.com/package-name
npm ERR! 404
npm ERR! 404 'package-name@version' is not in the npm registry.
Run Code Online (Sandbox Code Playgroud)
似乎它试图在 npm 注册表而不是 github 包注册表上上传包。我应该如何解决这个问题?
javascript git github github-actions github-package-registry
当使用 Github actions 提出拉取请求时,我正在做 npm 测试。现在,如果测试失败,我想添加一条消息或至少使用操作拒绝 PR。我该怎么做?
是否可以从一个 github 动作中调用一个(或多个)github 动作来创建一个更专业的动作,或者聚合许多小动作并创建一个“元 github 动作”?
我知道您可以在同一工作流程的作业之间共享工件...
但是如何在不同的工作流程中共享工件?
我正在使用commitlint Github 操作来验证我们的提交消息。只是想检查是否有一种方法可以在合并拉取请求之前强制通过。
当前行为: commitlint github 操作失败,但是,我仍然可以合并拉取请求
如果 commitlint github 操作失败 ,则应禁用合并拉取请求的按钮。(即像审稿人限制)
我正在尝试弄清楚如何使用 Github Actions 签出远程公共存储库,然后从当前存储库添加一些敏感文件,最后构建等。
我相信我可以使用以下命令查看远程仓库
steps:
- name: Checkout
uses: actions/checkout@v2
with:
repository: foo-user/bar-repo
Run Code Online (Sandbox Code Playgroud)
但是,如何将当前存储库中的文件中的一些文件复制到此已签出的存储库中?
Actions 的另一个经常请求的功能是一种根据另一个工作流的完成来触发一个工作流的方法。例如,您可能想要获取 CI 工作流的结果并运行一些进一步的分析。
新的workflow_run 事件使您能够在请求或完成一个或多个工作流时触发新的工作流。由工作流运行事件触发的运行始终使用存储库的默认分支,并且可以访问读/写令牌以及机密。作为一个例子,作为维护者,你可以建立一个工作流程,需要通过拉入请求工作流所产生的假象,做了一些分析,并发表评论回拉的要求。此事件也可用作 webhook 并适用于所有存储库。
这是引用自Github 的博客。
有人能告诉我如何实现使用新事件提出的示例workflow_run吗?该文档仅提供了一个非常简单的示例:
on:
workflow_run:
workflows: ["Run Tests"]
branches: [main]
types:
- completed
- requested
Run Code Online (Sandbox Code Playgroud)
如果有人能教我如何实现这个例子,我会很高兴。
我的 GitHub 工作流程如下所示:
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "build"
test:
runs-on: ubuntu-latest
needs: build
steps:
- run: echo "build"
deploy:
runs-on: ubuntu-latest
needs: [build, test]
steps:
- run: echo "deploy"
Run Code Online (Sandbox Code Playgroud)
现在,我想使该deploy步骤仅tests在分支为 时才需要该步骤main。
那可能吗?
本质上我想做这样的事情:
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "build"
test:
runs-on: ubuntu-latest
needs: build
steps:
- run: echo "build"
deploy:
runs-on: ubuntu-latest
needs: contains(branch, "master") ? [build, test] : [build] #notice this line
steps:
- run: echo …Run Code Online (Sandbox Code Playgroud) 让我们以 Github 文档中的复合操作为例:
name: 'Hello World'
description: 'Greet someone'
inputs:
who-to-greet: # id of input
description: 'Who to greet'
required: true
default: 'World'
outputs:
random-number:
description: "Random number"
value: ${{ steps.random-number-generator.outputs.random-id }}
runs:
using: "composite"
steps:
- run: echo Hello ${{ inputs.who-to-greet }}.
shell: bash
- id: random-number-generator
run: echo "::set-output name=random-id::$(echo $RANDOM)"
shell: bash
- run: ${{ github.action_path }}/goodbye.sh
shell: bash
Run Code Online (Sandbox Code Playgroud)
我们如何random-number在调用此操作的外部工作流程中使用该特定输出?我尝试了以下代码片段,但目前工作流程似乎无法从操作中读取输出变量,因为它只是空的 - '输出 - '
jobs:
test-job:
runs-on: self-hosted
steps:
- name: Call Hello …Run Code Online (Sandbox Code Playgroud) 在 Github 操作中,您可以使用 获取提交 SHA ${GITHUB_SHA},这是默认的环境变量。。然而,这个提交SHA似乎是一个合并提交!?它不等于 PR 的 Github UI 上显示的提交 SHA。关于如何获取 PR 中显示的 SHA(在 Github UI 上)有什么想法吗?