问题标签 [building-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.

0 投票
2 回答
1829 浏览

typescript - GitHub Actions - 如何使用 TypeScript

问题

我正在为 Marketplace 做一个自定义的 GitHub Action,以使其更容易在其他项目中使用。

Action 是用 TypeScript 制作的,并使用了一些包,比如typescript, babel编辑:不要再使用 babel 了)@actions/core@actions/github.

当我将Action添加到另一个项目的工作流中时,他可以安装包并构建项目,甚至初始化它,但是当执行开始时,他找不到@actions模块并且@actions/core的核心是未定义的( @actions/core 是第一个使用的包,因此,它使管道崩溃)。

node_modules文件夹已正确创建并且包在其中,但在脚本中,它们不会被加载。

可能的原因

当我尝试在我的机器上运行构建版本(构建器版本,带有 ncc 的版本和带有 tsc 的版本)时,会发生同样的错误:

编辑:问题是包的不正确导入@actions/core

附加信息

为了能够安装软件包并构建,我必须在我的action.yml文件中执行此操作:

我的文件夹结构:

使用上面发送的 action.yml,返回以下错误:

getInput是一种方法@actions/core(它被正确导入并且不是问题

编辑:那是问题哈哈哈。


如果我不运行yarn install或不npm install使用某些脚本,则会发生以下错误:

在我看到的教程中,它们都不需要安装软件包,就像它们是自动安装的一样。


我也尝试使用ncc并将编译后的代码推送到操作存储库,但它也不起作用。

我的 action.yml:

我的文件夹结构:

使用上面的配置,会发生同样的错误:


这就是我@actions/core在第一行导入的方式src/index.ts


  • 我没有将 node_modules 推送到存储库,只是 dist 文件夹(我也尝试不使用该文件夹,在操作执行期间构建,但它也没有工作。)
  • 我也找到了这篇文章,但也没有用。

问题

  • 关于如何在 GitHub Actions 中使用 typescript 的任何想法?
  • 为什么模块没有加载?
  • 是否有任何教程、文章、视频和任何类型的内容与 TypeScript 和 GitHub Actions for Marketplace 一起使用?我找到了这个模板,但我不知道为什么它有效而我的无效(我没有测试过模板,也许它也不起作用)。
0 投票
1 回答
659 浏览

ruby - How To Use Ruby Which is Installed on Self Hosted Runner Of Github Workflow {ruby/setup-ruby }

I have a self hosted runner for Git hub workflow ,which requires Ruby for the execution .. I tried to use ruby/setup-ruby which is a prebuilt ruby ..But when I use that it gives me a error as below

  • Unable to locate executable file: 7z. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.

my yml file related to setting up prebuilt ruby is as follows

enter image description here

  • So I have installed ruby on the server manually. Now I want to use that manually installed Ruby instance inside my Yml file.. Any advise?

i have added 7zip to my environmental variables and verified that its added as follows

enter image description here

the service which is used to communicate my runner with GitHub also works fine as it shows my runner state correctly as follows even I am not executing any workflow action on it..

enter image description here

0 投票
1 回答
586 浏览

github - 禁用 Github Action 工作流程,仅在需要时运行

我有一些非常昂贵的基准/测试,我只想在一些 PR 上运行,而不是全部。有没有办法通过 github 操作来做到这一点?

0 投票
2 回答
7342 浏览

github - 如何使 github 动作矩阵元素有条件

我有一个使用 'strategy' = 'matrix' 和要构建的特定配置列表的工作流程。

工作流 YAML 的链接(也在下方提供)

但我只想在分支 = v2.1-Release 时构建一些配置。也就是说——在大多数情况下——只构建一两个配置,但在发布时构建更多配置。

我通过克隆脚本(工作流程)并重命名一些东西并注释掉它来实现这一点。但是,如果该机制与矩阵元素一起使用,那就太好了。

我意识到可以在每个步骤中添加一个“如果”功能,但这会创建大量带有禁用步骤的作业。我想要的是根本不为每个具有 if 部分评估为假的矩阵元素启动这些工作。

0 投票
0 回答
254 浏览

github - GitHub Action - 从分支 A 推送到分支 B 时触发,但不分支到分支 B

我的回购有分支机构AppleBanana& master

Apple当我从 Branch 推送到 Branch时,我想运行该操作Banana,而不是当 Pull Requests 合并到Branch B.

行动的当前草案开始于;

但是,如果我将 PR 从 fork 合并到 branch Banana,该操作仍会触发 - 我该如何阻止它?

我已经看到有关使用 IF 语句(HERE)的工作流语法,但是没有“来自分支Apple”的选项

0 投票
1 回答
639 浏览

github - 如何获取 Github 操作工作流的通过/失败状态?

我一直在查看 GitHub REST API,并且一直在尝试找出在哪里可以找到端点以获取操作中工作流的状态。我可以判断它是通过还是失败的唯一方法是下载badge.svg。

0 投票
1 回答
38 浏览

continuous-integration - 从 Travis 迁移到 GitHub Actions 一直失败

我目前正在完成从 travis CI 到 Github Actions CI 的迁移,但是当容器尝试连接到我的测试数据库时,我的构建一直失败。

这是一个非常普遍的错误

UNKNOWN_CODE_PLEASE_REPORT:发生内部错误。请重试或报告您的问题。

附加说明:我的测试数据库托管在 Azure(mysql 服务器)上,我的测试在本地执行良好,之前在 travis 上执行。项目详情:NodeJs 项目为 MySql 运行 TypeOrm。

这是我的 yml 的当前基本版本的样子:

0 投票
2 回答
5780 浏览

firebase - Github Actions - 如何使我的环境变量(存储在 .env 文件中)在我的工作流程中可用

我会尽量说清楚。我也询问过相关问题,但没有得到令人信服的答复。
我正在使用Reactfirebase进行托管。
此外,我将我的firebase Web API 密钥存储在我的.env文件中。
我使用 Firebase CLI 设置了 Firebase 托管,并选择在合并或拉取请求时自动部署。
设置完成后,在我的工作目录中创建了一个.github包含文件的文件夹。.yml

firebase deploy因此,现在当我通过运行一切正常并将我的项目(不推送到 GitHub)手动部署到 Firebase 时,我的应用程序已启动并正在运行。
但是,当我进行更改并将更改推送到 Github 时。触发 Github 操作并开始自动部署到 firebase 进程。构建通过了所有检查。但是,当我访问托管 URL 时,我在控制台中遇到一个错误,说我尝试了一些解决方法,例如将我的 firebase Web API 密钥存储到 Github 机密中并在我的文件中访问它。在此处输入图像描述

Your API key is invalid, please check you have copied it correctly.
.yml

但我仍然收到错误消息。我觉得这个错误肯定是环境变量造成的。
我已将我的 firebase Web API 密钥存储在.env.production位于根目录的文件中。不知何故,GitHub 操作没有使用我定义的环境变量。
请让我知道如何管理我的环境变量,以便我的工作流程可以访问它。

0 投票
1 回答
398 浏览

docker - dockerized github 操作是否支持 docker run 参数的网络选项

我正在使用自托管 github 运行器对某些软件进行 vpn 访问,并且我正在尝试在自托管运行器上使用 dockerized github 操作,但我遇到了问题,因为我需要在 github 操作运行 docker run 时指定 --network 主机标志. 有没有办法让 github 操作使用主机的网络?

0 投票
1 回答
1068 浏览

docker - 将文件从 Docker 容器复制到 Github 存储库

我的存储库中有一个 Dockerfile 和一个 tex 文件。我使用 Github Actions 构建图像(带有 PDFLaTeX 包的 ubuntu 18.10)并运行一个容器,该容器获取 main.tex 并使用 PDFLaTeX 生成 main.pdf。到目前为止,一切似乎都正常,但问题是我无法将 pdf 从容器复制到存储库。我尝试使用 docker cp:

docker cp pdf-creator:/main.tex .

但它似乎不起作用,因为 pdf 没有出现在我的存储库中。你能想出其他方法来解决这个问题吗?