Действия github не могут найти пакет. json - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь настроить какое-то базовое c действие GitHub для написания комментариев к PR.

Действие опубликовано на github и выглядит так:

action.yml файл:

name: !!name!!
description: !!description!!
author: !!me!!
inputs:
  token:
    description: "Github token"
    required: true
runs:
  using: "node12"
  main: "index.js"

индекс. js файл:

<code>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}
`; ждать githubClient.issues.createComment ({репо: репоНазвание, владелец: репоавнер, тело: commentBody, номер_выпуска: prNumber,}); }; main (). catch ((err) => core.setFailed (err.message));

В проект я добавил действие через github, вот так

.github / workflows / main.yml file:

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!!"

Итак, кто-нибудь знает, что я здесь делаю не так? Я попытался найти решение в Google, но ... безуспешно :(

Спасибо за ваше время!

1 Ответ

1 голос
/ 06 мая 2020

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