Estoy ejecutando una prueba con un flujo de trabajo de GitHub Actions y me gustaría fallar la prueba si el objeto resultante producido por la prueba está vacío. ¿Cómo verifico si un objeto JSON está vacío?
Mi trabajo de flujo de trabajo actual contiene el paso:
- 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')Pero el código anterior actualmente da como resultado el 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 != {} Es confuso ya que creo que mi código funcionaría en javascript normal, pero no parece funcionar aquí. También probé Object.keys(obj).length === 0 y JSON.stringify(obj) == '{}' pero tampoco funcionan (no reconoce las clases Object o JSON ).
Trate toJSON :
if: toJSON(steps.securityTestsResults) == "{}" (No necesita el envoltorio ${{ }} en una instrucción if , ya que siempre se evalúan como expresiones).
Documentos: https://docs.github.com/en/actions/learn-github-actions/expressions#tojson
- name: Check HOST ENV uses: actions/github-script@v4 with: script: | if( "${{env.HOST}}" == "ERR" ){ core.setFailed('Error mnj') }