Skip to content

Conversation

@parksb
Copy link
Contributor

@parksb parksb commented Oct 7, 2025

What's the problem this PR addresses?

Resolves #6491

$ yarn init -2
$ echo 'CYPRESS_DOWNLOAD_PATH_TEMPLATE="\${endpoint}/\${platform}-\${arch}/cypress.zip"' > .env.yarn
$ yarn node -p 'process.env.CYPRESS_DOWNLOAD_PATH_TEMPLATE'

# AS-IS
Usage Error: Environment variable not found (endpoint)

# TO-BE
${endpoint}/${platform}-${arch}/cypress.zip

How did you fix it?

Support escaping template variables in environment variable values. When a template variable is escaped with a backslash (e.g., \${VAR}), it is now preserved as a literal string ${VAR} instead of being replaced with an actual environment variable value.

I updated the regex to match values starting with a backslash. When a match starts with a backslash, it is treated as an escaped template and returns the value with only the backslash removed (match.slice(1)).

Checklist

  • I have set the packages that need to be released for my changes to be effective.
  • I will check that all automated PR checks pass before the PR gets reviewed.

@arcanis arcanis merged commit 4e36aa5 into yarnpkg:master Nov 7, 2025
50 of 51 checks passed
@parksb parksb deleted the 6491 branch November 7, 2025 11:04
Gudahtt added a commit to Gudahtt/berry that referenced this pull request Feb 9, 2026
…lowlist

* origin/master: (212 commits)
  CI: Select node version to run CI against automatically (yarnpkg#7032)
  Fixes foreach order when --topological isnt set (yarnpkg#6997)
  fix(fslib): handle float timestamps in convertToBigIntStats (yarnpkg#6988)
  Fixes the `/<name>/<version>` format (yarnpkg#6993)
  docs(constraints): add missing @typedef alias for `Context` (yarnpkg#6989)
  Sync master with the changes from master
  Releasing 3 new packages
  Fix JSON Schema (yarnpkg#6973)
  Implements npm web login support (yarnpkg#6981)
  fix(git): split `-c` and `core.autocrlf=false` into separate args for `clone` (yarnpkg#6983)
  Sync master with the changes from master
  Releasing 8 new packages
  Allow catalogs to work with descriptors without resolvers (yarnpkg#6930)
  docs: Clarify additional use-case of npmMinimalAgeGate (yarnpkg#6945)
  Migrates the "typescript" dependencies to a catalog (yarnpkg#6969)
  Support escaping template variables in environment values (yarnpkg#6935)
  Core: Create DURATION settings type (yarnpkg#6942)
  fix: use correct env var to detect gitlab CI for OIDC (yarnpkg#6938)
  Update README.md badge link (yarnpkg#6947)
  fix(publish): use correct workspace name in --json output (yarnpkg#6949)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Cannot use literal ${x} in environment variable files

2 participants