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

Đang mở
#344 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
github-actions, javascript, typescript
Lĩnh vực
api, ci-cd, devops

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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-
Ngôn ngữ chính
TypeScript
Star
5k
Fork
586
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của actions/github-script

Tất cả issue của actions/github-script

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.