Open
Description
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-