You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Before
yarn link @typeform/jarvis # name-based — works with yarn
pnpm link @typeform/jarvis # name-based — BREAKS with pnpm# After
pnpm link "$JARVIS_DIR"# path-based — correct for pnpm
Issue 2: datadog-ci: not found during deploy sourcemaps upload
Error
sh: 1: datadog-ci: not found
Command failed: npx --yes @datadog/datadog-ci@5.21.0 sourcemaps upload dist ...
Why @datadog/datadog-ci v5 is a meta-package. When invoked via npx, it downloads itself to a temp dir and internally spawns datadog-ci as a subprocess (looking for the binary on $PATH). With yarn, datadog-ci bin was hoisted to node_modules/.bin and was on PATH. With pnpm, it's not.
This was not a package rename issue. The package datadog-ci (unscoped) was deprecated; the correct package is @datadog/datadog-ci. But even with the correct package, v5 spawns a subprocess that needs datadog-ci on PATH.
Fix — two parts:
Fix: install datadog-ci globally in setup-jarvis and add it to $GITHUB_PATH so all subsequent steps — including subprocesses spawned by jarvis — can find the binary.
In setup-jarvis/action.yml (all package managers):
$GITHUB_PATH persists the bin path for all subsequent steps in the job, including subprocesses. export PATH would only work within the same shell process.
In frontend-deploy-workflow.yml and frontend-pr-workflow.yml "Tag pipeline" step — now just:
datadog-ci tag --level pipeline \
--tags "workflow_version:..." \
--tags "workflow_file:..."
No conditional, no npx, no per-step install.
Testing
Relies on CI runs with pnpm-based repos consuming setup-jarvis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Issue 1:
pnpm linkbad params in setup-jarvisError
Why
yarn link registers a package globally by name:
yarn linkthenyarn link @typeform/jarvis.pnpm link requires a path:
pnpm link /path/to/pkg.The
setup-jarviscomposite action was doingpnpm link @typeform/jarvis(name-based) afteryarn linkregistered it.Fix —
.github/shared-actions/setup-jarvis/action.ymlWhere:
Typeform/.githubrepo,deploy-pnpmbranch, commit82782b4.Issue 2:
datadog-ci: not foundduring deploy sourcemaps uploadError
Why
@datadog/datadog-civ5 is a meta-package. When invoked vianpx, it downloads itself to a temp dir and internally spawnsdatadog-cias a subprocess (looking for the binary on$PATH). With yarn,datadog-cibin was hoisted tonode_modules/.binand was on PATH. With pnpm, it's not.This was not a package rename issue. The package
datadog-ci(unscoped) was deprecated; the correct package is@datadog/datadog-ci. But even with the correct package, v5 spawns a subprocess that needsdatadog-cion PATH.Fix — two parts:
Fix: install
datadog-ciglobally insetup-jarvisand add it to$GITHUB_PATHso all subsequent steps — including subprocesses spawned by jarvis — can find the binary.In
setup-jarvis/action.yml(all package managers):$GITHUB_PATHpersists the bin path for all subsequent steps in the job, including subprocesses.export PATHwould only work within the same shell process.In
frontend-deploy-workflow.ymlandfrontend-pr-workflow.yml"Tag pipeline" step — now just:No conditional, no
npx, no per-step install.Testing
setup-jarvisDocs
For contributions to the
Typeform/.githubrepo