Error fetching the result of a previous build in Github Actions using Github Script

Aperta
#344 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
github-actions, javascript, typescript
Ambito
api, ci-cd, devops

Direzione di ricerca

No repository file is named; start with the workflow snippets and the actions/github-script@v6 entry point, then inspect the referenced REST endpoints and the failing run logs. Determine why the run identifier and script syntax fail, and verify that the workflow can retrieve the prior test job conclusion for the current branch or pull request.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

question

Describe the bug
I am trying to fetch the result of a previous build in Github Actions using Github Script. The aim is to only execute the current build job if the previous job succeeded.

To Reproduce
Below is my GitHub action:

      - name: Get previous test status
        uses: actions/github-script@v6
        id: get-previous-test-status
        with:
          github-token: ${{ secrets.GIT_TOKEN }}
          script: |
            const ref = $(curl -s -H "Authorization: Bearer ${{ secrets.GIT_TOKEN }}" "https://api.github.com/repos/${{ github.repository }}/actions/runs?event=pull_request&branch=${{ github.head_ref }}&status=completed&per_page=1" | jq -r '.workflow_runs[0].id');
            const response = await github.rest.actions.listJobsForWorkflowRun({
              owner: context.repo.owner,
              repo: context.repo.repo,
              run_id: ref,
              filter: 'latest',
              per_page: 100
            });
            const previous_job_1 = response.data.jobs.find(job => job.name === 'test');
            return previous_job_1.conclusion;

However, when I run this action, I get the following error:

SyntaxError: Invalid or unexpected token
    at new AsyncFunction (<anonymous>)
    at callAsyncFunction (/home/runner/work/_actions/actions/github-script/v6/dist/index.js:15099:16)
    at main (/home/runner/work/_actions/actions/github-script/v6/dist/index.js:15198:26)
    at /home/runner/work/_actions/actions/github-script/v6/dist/index.js:15175:1
    at /home/runner/work/_actions/actions/github-script/v6/dist/index.js:152[30](https://github.com/genieai-co/genie-app/actions/runs/4228176248/jobs/7343361774#step:5:31):3
    at Object.<anonymous> (/home/runner/work/_actions/actions/github-script/v6/dist/index.js:15233:12)
    at Module._compile (node:internal/modules/cjs/loader:1105:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
    at Module.load (node:internal/modules/cjs/loader:981:[32](https://github.com/genieai-co/genie-app/actions/runs/4228176248/jobs/7343361774#step:5:33))
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
Error: Unhandled error: SyntaxError: Invalid or unexpected token

Also tried this github action:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Get previous test status
        uses: actions/github-script@v6
        id: get-previous-test-status
        with:
          github-token: ${{ secrets.GIT_TOKEN }}
          script: |
            const eventName = context.eventName;
            const ref = context.payload.pull_request ? context.payload.pull_request.head.sha : context.payload.before;
            const response = await github.rest.actions.listJobsForWorkflowRun({
              owner: context.repo.owner,
              repo: context.repo.repo,
              run_id: ref,
              filter: 'latest',
              per_page: 100
            });
            const previous_job_1 = response.data.jobs.find(job => job.name === 'test');
            return previous_job_1.conclusion;

but still facing a different issue, not sure how to get the job execution status of the previous build of current branch or PR

RequestError [HttpError]: Not Found
    at /home/runner/work/_actions/actions/github-script/v6/dist/index.js:6803:21
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Error: Unhandled error: HttpError: Not Found
    at async eval (eval at callAsyncFunction (/home/runner/work/_actions/actions/github-script/v6/dist/index.js:15099:16), <anonymous>:5:18)
    at async main (/home/runner/work/_actions/actions/github-script/v6/dist/index.js:15198:20) {
  status: 404,
  response: {
    url: 'https://api.github.com/repos/test-co/vic-app/actions/runs/8d2ce46a0f7f94933a013b49e39a4083158a4c4c/jobs?filter=latest&per_page=100',
    status: 404,
    headers: {
      'access-control-allow-origin': '*',
      'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset',
      connection: 'close',
      'content-encoding': 'gzip',
      'content-security-policy': "default-src 'none'",
      'content-type': 'application/json; charset=utf-8',
      date: 'Mon, 20 Feb 2023 17:13:49 GMT',
      'referrer-policy': 'origin-when-cross-origin, strict-origin-
Lingua principale
TypeScript
Stelle
5k
Fork
586
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di actions/github-script

Tutte le issue di actions/github-script

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.