diff --git a/docs/usage/self-hosted-experimental.md b/docs/usage/self-hosted-experimental.md index bd95401a8cfc64b6e0a3fcc5efebc7457e3bd62f..d7d7348927361d1ea937bac20602ba38692f89f7 100644 --- a/docs/usage/self-hosted-experimental.md +++ b/docs/usage/self-hosted-experimental.md @@ -177,6 +177,6 @@ Don't combine with `redisUrl`, Redis would be preferred over SQlite. Suppress the pre-commit support warning in PR bodies. -## `RENOVATE_X_YARN_IGNORE_PROXY` +## `RENOVATE_X_YARN_PROXY` -Skip configuring global Yarn proxy settings if HTTP proxy environment variables are detected. +Configure global Yarn proxy settings if HTTP proxy environment variables are detected. diff --git a/lib/modules/manager/npm/post-update/yarn.spec.ts b/lib/modules/manager/npm/post-update/yarn.spec.ts index 54ff7db991df139ceb12bc440e8dd35a69adc05d..d1e01dc27a1e03d57e3b38715bed45e9f984f405 100644 --- a/lib/modules/manager/npm/post-update/yarn.spec.ts +++ b/lib/modules/manager/npm/post-update/yarn.spec.ts @@ -48,6 +48,7 @@ describe('modules/manager/npm/post-update/yarn', () => { delete process.env.BUILDPACK; delete process.env.HTTP_PROXY; delete process.env.HTTPS_PROXY; + delete process.env.RENOVATE_X_YARN_PROXY; Fixtures.reset(); GlobalConfig.set({ localDir: '.', cacheDir: '/tmp/cache' }); removeDockerContainer.mockResolvedValue(); @@ -152,6 +153,7 @@ describe('modules/manager/npm/post-update/yarn', () => { it('sets http proxy', async () => { process.env.HTTP_PROXY = 'http://proxy'; process.env.HTTPS_PROXY = 'http://proxy'; + process.env.RENOVATE_X_YARN_PROXY = 'true'; GlobalConfig.set({ localDir: '.', allowScripts: true, diff --git a/lib/modules/manager/npm/post-update/yarn.ts b/lib/modules/manager/npm/post-update/yarn.ts index fe4d57a3bab6a1df28d70b56029449f7c45699c7..3334a8d6167419c98acfbfd4d444bc6bf9bcaa2a 100644 --- a/lib/modules/manager/npm/post-update/yarn.ts +++ b/lib/modules/manager/npm/post-update/yarn.ts @@ -210,7 +210,7 @@ export async function generateLockFile( commands.push(`yarn set version ${quote(yarnUpdate.newValue!)}`); } - if (!process.env.RENOVATE_X_YARN_IGNORE_PROXY) { + if (process.env.RENOVATE_X_YARN_PROXY) { if (process.env.HTTP_PROXY && !isYarn1) { commands.push('yarn config unset --home httpProxy'); commands.push( diff --git a/lib/modules/manager/npm/readme.md b/lib/modules/manager/npm/readme.md index aa0be6c827e67ab40e460a539aec0bef2a4199dc..a5d8549e57ab5f823eab9f5c530746a3c0c403c7 100644 --- a/lib/modules/manager/npm/readme.md +++ b/lib/modules/manager/npm/readme.md @@ -17,9 +17,10 @@ If Renovate detects a `packageManager` setting for Yarn in `package.json` then i #### HTTP Proxy Support Yarn itself does not natively recognize/support the `HTTP_PROXY` and `HTTPS_PROXY` environment variables. -If Renovate detects Yarn 2+, and one or both of those variables are present, then it will run commands like `yarn config set --home httpProxy http://proxy` prior to executing `yarn install`. + +You can configure `RENOVATE_X_YARN_PROXY=true` as an environment variable to enable configuring of Yarn proxy (e.g. if you cannot configure these proxy settings yourself in `~/.yarnrc.yml`). + +If set, and Renovate detects Yarn 2+, and one or both of those variables are present, then Renovate will run commands like `yarn config set --home httpProxy http://proxy` prior to executing `yarn install`. This will result in the `~/.yarnrc.yml` file being created or modified with these settings, and the settings are not removed afterwards. Configuration/conversion of `NO_PROXY` to Yarn config is not supported. - -You can configure `RENOVATE_X_YARN_IGNORE_PROXY=true` as an environment variable to skip the configuring of Yarn proxy (e.g. if you already configure these proxy settings yourself in `~/.yarnrc.yml`);