Skip to content

Commit f7e9b87

Browse files
committed
fix: include latest Yarn logic from update.sh
1 parent e7a4f24 commit f7e9b87

1 file changed

Lines changed: 13 additions & 18 deletions

File tree

updateLib.js

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ const { readFileSync, writeFileSync } = require('fs');
55
const { getAllDockerfiles, getDockerfileNodeVersion } = require('./utils');
66

77
const releaseUrl = 'https://nodejs.org/dist/index.json';
8-
const yarnVersionUrl = 'https://classic.yarnpkg.com/latest-version';
98

109
const templates = Object.freeze({
1110
alpine: 1,
@@ -121,25 +120,23 @@ const getBaseImage = ({ template, variant }) => {
121120

122121
const formatKeys = (keys) => keys.map((key) => `$1${key} \\`).join('\n');
123122

124-
const formatTemplate = (yarnVersion, nodeKeys, yarnKeys, muslChecksum, base, metadata) => {
123+
const formatTemplate = (nodeKeys, muslChecksum, base, metadata) => {
125124
const { latestVersion, template, nodeMajorVersion } = metadata;
126125
const baseImage = getBaseImage(metadata);
127-
const initialFormat = base.replace(/^FROM.+$/m, `FROM ${baseImage}`)
128-
.replace(/^ENV NODE_VERSION .+$/m, `ENV NODE_VERSION ${latestVersion}`)
129-
.replace(/^ENV YARN_VERSION .+$/m, `ENV YARN_VERSION ${yarnVersion}`)
126+
let initialFormat = base.replace(/^FROM.+$/m, `FROM ${baseImage}`)
127+
.replace(/^ENV NODE_VERSION=.+$/m, `ENV NODE_VERSION=${latestVersion}`)
130128
.replace(/^(\s*)"\${NODE_KEYS\[@]}".*$/m, formatKeys(nodeKeys))
131-
.replace(/^(\s*)"\${YARN_KEYS\[@]}".*$/m, formatKeys(yarnKeys));
129+
130+
if (parseInt(nodeMajorVersion, 10) >= 26) {
131+
initialFormat = initialFormat.replace(/ENV YARN_VERSION.*\*\n/s, '');
132+
}
132133

133134
if (template !== templates.alpine) {
134135
return initialFormat;
135136
}
136-
137-
const pythonVersion = parseInt(nodeMajorVersion, 10) < 14
138-
? 'python2'
139-
: 'python3';
140-
141-
return initialFormat.replace(/\${PYTHON_VERSION}/m, pythonVersion)
142-
.replace(/CHECKSUM=CHECKSUM_x64/m, `CHECKSUM="${muslChecksum}"`);
137+
else {
138+
return initialFormat.replace(/CHECKSUM=CHECKSUM_x64/m, `CHECKSUM="${muslChecksum}"`);
139+
}
143140
};
144141

145142
const fetchMuslChecksum = async (nodeVersion) => {
@@ -149,22 +146,20 @@ const fetchMuslChecksum = async (nodeVersion) => {
149146
return checksums.match(/(\S+)\s+\S+-linux-x64-musl.tar.xz/m)[1];
150147
};
151148

152-
const updateDockerfile = async (yarnVersion, nodeKeys, yarnKeys, metadata) => {
149+
const updateDockerfile = async (nodeKeys, metadata) => {
153150
const { file, template, latestVersion } = metadata;
154151
const base = readTemplate(template);
155152
const muslChecksum = await fetchMuslChecksum(latestVersion);
156153

157-
const formatted = formatTemplate(yarnVersion, nodeKeys, yarnKeys, muslChecksum, base, metadata);
154+
const formatted = formatTemplate(nodeKeys, muslChecksum, base, metadata);
158155
writeFileSync(file, formatted);
159156
};
160157

161158
const updateDockerfiles = async (outdated) => {
162-
const yarnVersion = await fetchText(yarnVersionUrl);
163159
const nodeKeys = getKeys('node.keys');
164-
const yarnKeys = getKeys('yarn.keys');
165160

166161
await Promise.all(
167-
outdated.map((metadata) => updateDockerfile(yarnVersion, nodeKeys, yarnKeys, metadata)),
162+
outdated.map((metadata) => updateDockerfile(nodeKeys, metadata)),
168163
);
169164
};
170165

0 commit comments

Comments
 (0)