GitHub Actions 无法找到 package.json 文件。

6

我正在尝试设置一些基本的GitHub操作,以便在PR上编写评论。

该操作已发布在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添加了一个action,就像这样:
.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!!"

那么,有人知道我在这里做错了什么吗?我尝试通过谷歌寻找解决方案,但是...不成功:(

感谢您的时间!

2个回答

9

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 }}

-1
如果你在 Github 存储库中有类似的结构,那么在你的工作流文件中应该适当设置 docker/build-push-action@v3 文件和上下文属性。

Project Structure

Workflow file


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接