zendesk / zendesk/setup-jsonnet

Calling setup-jsonnet can fail without error

Open
#11 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
7
Forks
5
PR merge metrics
No merged PRs in 30d

Description

When using zendesk/setup-jsonnet, the installation can fail without error leading to difficult to diagnose failures later on.

There is an example usage here:

https://github.com/zendesk/entitlements/blob/3c68ee80b0d8470b84c07b2b26da8de3e19bcdc5/.github/workflows/spinnaker-manifests.yml#L88

And an example silent failure here https://github.com/zendesk/entitlements/runs/4207995033?check_suite_focus=true

Which can be observed by expanding the "Run zendesk/setup-jsonnet@v6" step.

I have reproduced the output below:

Run zendesk/setup-jsonnet@v7
  with:
    github_token: ***
    version: latest
  env:
    PROJECT_ID: docker-images-180022
    IMAGE_PATH: apps
    IMAGE_NAME: entitlements
    IMAGE_NAME2: entitlements-console
    IMAGE_NAME3: entitlements-debug
    ARTIFACTORY_API_KEY: ***
    ARTIFACTORY_USERNAME: ***
    DIGEST: sha256:2317cc52a1b3c6406191d0b292baf313a1037df69a99d4f23e2169caed5bb84e
    SHA: 66b31c16529f0ccc2953b54bc73f7d1232cad53c
/home/runner/runner/agent/_work/_actions/zendesk/setup-jsonnet/v7/install-jsonnet.sh
+ go get github.com/google/go-jsonnet/cmd/jsonnet
# cd .; git clone -- https://gopkg.in/yaml.v2 /home/runner/go/src/gopkg.in/yaml.v2
Cloning into '/home/runner/go/src/gopkg.in/yaml.v2'...
remote: Cannot obtain refs from GitHub: cannot talk to GitHub: Get https://github.com/go-yaml/yaml.git/info/refs?service=git-upload-pack: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
fatal: unable to access 'https://gopkg.in/yaml.v2/': The requested URL returned error: 502
package gopkg.in/yaml.v2: exit status 128
(node:8460) UnhandledPromiseRejectionWarning: Error: The process '/home/runner/runner/agent/_work/_actions/zendesk/setup-jsonnet/v7/install-jsonnet.sh' failed with exit code 1
    at ExecState._setResult (/home/runner/runner/agent/_work/_actions/zendesk/setup-jsonnet/v7/node_modules/@actions/exec/lib/toolrunner.js:574:25)
    at ExecState.CheckComplete (/home/runner/runner/agent/_work/_actions/zendesk/setup-jsonnet/v7/node_modules/@actions/exec/lib/toolrunner.js:557:18)
    at ChildProcess.<anonymous> (/home/runner/runner/agent/_work/_actions/zendesk/setup-jsonnet/v7/node_modules/@actions/exec/lib/toolrunner.js:451:27)
    at ChildProcess.emit (events.js:210:5)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:430:11)
    at Socket.emit (events.js:210:5)
    at Pipe.<anonymous> (net.js:659:12)
(node:8460) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8460) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with install-jsonnet.sh, which is invoked by the zendesk/setup-jsonnet action, and compare its behavior with the example workflow and failed run. Reproduce the dependency-download failure and verify that the action reports the installation error and fails the workflow instead of continuing silently.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, go, shell
Domain
ci-cd
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.