Check if object is empty in GitHub Actions workflow

Viewed 1431

I'm running a test using a GitHub Actions workflow, and I would like to fail the test if the resulting object produced by the test is empty. How do I check if a JSON object is empty?

My current workflow job contains the step:

- name: Fail if security tests found any issues
  if: ${{ steps.securityTestsResults != {} }}
  uses: actions/github-script@v3
  with:
    script: |
        core.setFailed('security tests failed: non-empty results')

But the code above currently results in the error:

Invalid workflow file : .github/workflows/securityTests.yml#L34
The workflow is not valid. .github/workflows/securityTests.yml (Line: 34, Col: 11): Unexpected symbol: '{}'. Located at position 31 within expression: steps.securityTestsResults != {} 

It's confusing since I believe my code would work in regular javascript, but it doesn't appear to work here. I've also tried Object.keys(obj).length === 0 and JSON.stringify(obj) == '{}' but these don't work either (it doesn't recognize the Object or JSON classes).

2 Answers
- name: Check HOST ENV
   uses: actions/github-script@v4
   with:
    script: |
      if( "${{env.HOST}}" == "ERR" ){
        core.setFailed('Error mnj')
      }
Related