Sam H
Sam H

Reputation: 181

GitHub.com Actions - npm run build - debug.log

I’ve got an Action which builds a React site. Works perfectly locally and similar code works in a different repo but wont build via this Action.

I (think) I’ve narrowed it down to a single file but despite committing single lines at a time and having working elsewhere, I’m getting nowhere.

The actions Build and Deploy step log includes:

npm ERR! A complete log of this run can be found in:

npm ERR! /github/home/.npm/_logs/2021-07-05T20_48_03_994Z-debug.log

---End of Oryx build logs---
Oryx has failed to build the solution.

Anybody know how to access the debug.log?

Someone suggested I use actions/upload-artifact to try and upload the artifacts (and hopefully the logs) so I added this:

 - name: Archive production logs
    uses: actions/upload-artifact@v2
    if: always()
    with:
      retention-days: 1
      path: |
        **
        !/home/runner/work/mysite/mysite/node_modules/**

** to get everything excluding node_modules which is huge

Unfortunately, it still didn't include the log files which I assume is because they're in the Oryx container and I cant access them.

I somehow found this article: https://github.com/microsoft/Oryx/issues/605 and added this bit to my workflow

    env:
      CI: false

which I believe means that warnings are not treated as errors

TLDR How do you access the debug.log when using GitHub Actions?

Upvotes: 3

Views: 2926

Answers (1)

Sydin
Sydin

Reputation: 647

I've had success archiving npm failure logs with the following step:

- name: Archive npm failure logs
  uses: actions/upload-artifact@v2
  if: failure()
  with:
    name: npm-logs
    path: ~/.npm/_logs

I'm using the if: failure() conditional statement to only run this step when any previous step fails; excluding the conditional entirely will mean that a failure of the previous step will prevent this from running (it looks like the implicit default is always if: success()). If you'd like to archive the logs as an artifact in all cases, you'll want to change that back to if: always() like you had in your sample code.

(I'm also only archiving the ~/.npm/_logs path, and archiving it without a retention time.)

Upvotes: 4

Related Questions