Skip to content

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

Open
@genieai-vikas

Description

@genieai-vikas

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-

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionA question on how to use this action

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions