github - github 操作找不到 package.json
问题描述
我正在尝试设置一些基本的 GitHub 操作来在 PR 上写评论。
Action 发布在 github 上,如下所示:
action.yml 文件:
name: !!name!!
description: !!description!!
author: !!me!!
inputs:
token:
description: "Github token"
required: true
runs:
using: "node12"
main: "index.js"
index.js 文件:
const core = require("@actions/core");
const { execSync } = require("child_process");
const { GitHub, context } = require("@actions/github");
const main = async () => {
const repoName = context.repo.repo;
const repoOwner = context.repo.owner;
const token = core.getInput("token");
const testCommand = "yarn test --watchAll=false";
const prNumber = context.payload.number;
const githubClient = new GitHub(token);
const reportAsString = execSync(testCommand).toString();
const commentBody = `<div><h2>Test report</h2>
<p>
<pre>${reportAsString}</pre>
</p>
</div>`;
await githubClient.issues.createComment({
repo: repoName,
owner: repoOwner,
body: commentBody,
issue_number: prNumber,
});
};
main().catch((err) => core.setFailed(err.message));
在项目中,我通过github添加了动作,像这样
.github/workflows/main.yml 文件:
on: [push]
jobs:
start_tests:
runs-on: ubuntu-latest
name: A test job
steps:
- name: !!name!!
uses: !!link to my action on github with version!!
with:
token: ${{ secrets.GITHUB_TOKEN }}
但是,我的 PR 操作失败了,原因如下:
error Couldn't find a package.json file in "/home/runner/work/!!project_name!!/!!project_name!!"
##[error]Command failed: yarn test --watchAll=false
error Couldn't find a package.json file in "/home/runner/work/!!project_name!!/!!project_name!!"
那么,有人知道我在这里做错了什么吗?我试图用谷歌搜索解决方案,但呃......不成功:(
谢谢你的时间!
解决方案
package.json
文件必须存在才能运行yarn test
命令。正如我们错误地看到的那样,没有这样的文件只是因为根本没有项目文件夹。这意味着该工作对要处理的项目一无所知。因此,您必须执行以下更改之一:
如果您的操作已发布到市场
on: [push]
jobs:
start_tests:
runs-on: ubuntu-latest
name: A test job
steps:
- uses: actions/checkout@v2.1.0
- name: !!name!!
uses: !!link to my action on github with version!!
with:
token: ${{ secrets.GITHUB_TOKEN }}
如果您的操作尚未发布,或者您只想“在本地”运行它
on: [push]
jobs:
start_tests:
runs-on: ubuntu-latest
name: A test job
steps:
- name: !!name!!
uses: ./
with:
token: ${{ secrets.GITHUB_TOKEN }}
推荐阅读
- c# - 如何仅将项目随机放置在 20 的倍数的位置
- opengl - 如何反转四元数的两个轴
- components - 包装器组件内的 React Native Flatlist 打破了scolling
- sql - 如何从 Oracle APEX 中的 LOV 中选择时间戳数据类型值
- javascript - 在这两种情况下,Javascript 递归函数的执行方式都不同
- java - javax.net.ssl.SSLException:连接重置
- python - seaborn小提琴图,用于按分类列拆分单列
- botframework - 将状态传播到 MS BotFramework 中的对话框
- jestjs - 如何防止 Jest 打印所有跳过的测试?
- java - 如何将变量值设置为资源选择器?