问题标签 [github-actions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
github - GitHub Actions ***NO_CI*** 替代品
我正在尝试从 GitHub Actions Beta(YAML 的)中运行的工作流将代码推送到 GitHub 存储库。这很容易做到,只需在将远程 URLgit push
设置为包含凭据的 URL 后运行origin
,以便 Git 知道如何使用 GitHub 进行身份验证。
GitHub Actions 甚至获得了一个开箱即用的 PAT: GITHUB_TOKEN
,它可以被使用,并且整个系统足够智能,可以知道在使用已知与先前工作流运行相关联的 PAT 将提交推送到存储库时不会安排另一个操作。
这很好,但是,有使用自定义 PAT 的用例(在我的情况下,触发 GitHub Pages 构建,开箱即用的 PAT 不会这样做)并且使用自定义 PAT 失去了让 GitHub 知道的优势从当前工作流程推送提交后,不要运行另一个工作流程。
因此,当使用自定义 PAT 时,人们会发现自己处于工作流程的无限循环中。许多 CI 解决方案***NO_CI***
在提交消息中尊重并且不会运行任何检查/构建/如果此字符串存在于提交消息中。GitHub Actions Beta 不关心它。
我唯一能想到的就是使 GitHub Action 工作流作业/步骤有条件并构造如下条件:
但是,github
上下文对象没有包含提交消息的字段,并且上下文似乎不够表达,无法让我运行命令以使用 Git 从 SHA 获取提交消息并在其contains
上运行。
我有任何选择来实现这一目标吗?
github - 如何自动选择 GitHub 操作的最新标记版本?
由于 GitHub 操作的文档远远落后,我在网上找不到任何关于它的信息。
GitHub 操作有没有办法选择最新的标记版本?
如果我想选择一个版本,我会这样做:
如果我总是想要最新的提交,我会使用 master 分支
但是我该怎么做才能获得最新的标记版本,因为主分支正在开发中并且不稳定?
git - 通过 GitHub Actions 将 Lerna Monorepo 发布到 NPM 时出现 Git 错误
我使用以下 GitHub Actions(新YAML
版本)工作流程从我的lerna
monorepo 发布包以推送到master
:
deploy:ci
npm 脚本执行以下 bash 脚本:
这会导致以下错误:
是什么导致了上述错误?
github-actions - Github Actions:检查步骤状态
我的 CI 工作中有一些可能引发错误的步骤。我不想在出现错误的每个步骤上重新启动工作流程,并且希望转到检查这些步骤的最后一步并将此作业作为失败完成。但我无法在之前的步骤中获取状态信息。
当我在“if”或“run”中使用下一个构造时,将得到:steps -> {},job.steps -> null。
如何获取状态信息?
github - Github 工作流操作仅修改文件
对于我的项目 PR 流程,我想添加代码格式检查。我正在使用 github 市场 linter Black ( https://github.com/marketplace/actions/black-code-formatter ) 来执行此操作。我从代码示例中得到了这个工作,但它为 repo 中的所有文件运行,而不仅仅是 PR 中的修改文件。有什么办法可以改变这个吗?
我已经从main.workflow
文件中的市场页面运行了示例,它按预期工作
我认为问题与黑色呼叫有关,现在是:
args = ". --check --fast"
这会检查每个文件。我不确定如何将其更改为仅检查 PR 中修改文件的格式。
java - 如何配置 github 操作以使用依赖于其他私有存储库的 maven 进行编译?
我有两个包含 Java Maven 项目的存储库:
- 一个包含具有核心功能的项目,仅依赖于其中的其他项目或依赖于公共库
- 一个包含依赖于第一个存储库中某些项目的项目
我已经设置了一个 Github Action 来使用 maven on pull 编译每个存储库。首先,这没有问题。对于第二个,这不起作用,因为在构建第二个存储库时,第一个存储库的项目在环境中不可用于 maven。
我有两个想法来解决这个问题
- 在第二个存储库中创建一个子模块以包含第一个
- 另外检查第一个版本中的第一个存储库
两种解决方案都可能有效,但最终需要所有构建时间来额外构建第一个存储库。
这是 Github 操作(目前在两个存储库中相同):
有没有办法在第二个存储库中使用第一个存储库的构建而不再次构建它?
我想这不是一个独特的问题,必须有一个最佳实践解决方案。
ruby - 如何在 github 操作中捆绑安装私有 gem
我想priv_gem_a
通过 github 操作在 gem 上运行 rspec(调用它)。
priv_gem_a
取决于私人回购中的另一个宝石(称之为priv_gem_b
)。priv_gem_b
但是,由于权限无效,我无法捆绑安装。
错误:
我认为这与跑步者无法访问同一组织中的不同私人仓库有关。
所以我尝试将环境变量添加到我的工作流文件中,包括GITHUB_TOKEN
s,但这不起作用:
只是 Gemfile 中关于此的一个片段:
github - 如何设置 github 操作以运行 headful puppeteer 以进行 E2E 扩展测试
任何帮助将不胜感激!
如果测试失败,我要求不允许我的 github 用户合并到 master。应该禁用 github 中的合并按钮并显示测试详细信息。
我决定使用 github 操作来实现这些要求。
我的问题是:如何设置 github 操作工作流,安装 XVFB 以使用 puppeteer 运行 HEADFUL E2E 测试以测试扩展?
我会在 windows(xvfb?)、mac、ubuntu 上运行测试。
也可以在我的 Digital Ocean 服务器而不是 github 的容器上运行测试吗?我在这里设置了所有内容并且可以正常工作!
最后,我无法用其他库/工具替换 1. puppeteer 2. Node 3. Github 操作。