【问题标题】:github actions can not find package.jsongithub 操作找不到 package.json
【发布时间】:2020-08-20 03:51:32
【问题描述】:

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

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添加了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!!"

所以,有人知道我在这里做错了什么吗?我试图用谷歌搜索解决方案,但呃......不成功:(

感谢您的宝贵时间!

【问题讨论】:

    标签: github yaml package.json github-actions


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2022-01-08
      • 2021-08-27
      • 2020-09-19
      • 2020-02-07
      • 2021-11-02
      • 2021-08-25
      • 2020-10-15
      • 2021-12-11
      • 1970-01-01
      相关资源
      最近更新 更多