Skip to content

Commit

Permalink
Merge pull request #375 from ganeshrvel/release/3.2.23
Browse files Browse the repository at this point in the history
codemagic ci to install semver fix
  • Loading branch information
ganeshrvel committed Jun 12, 2024
2 parents edde3cb + f831010 commit 362c3ed
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 4 deletions.
3 changes: 1 addition & 2 deletions codemagic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ definitions:
- &install_global_packages
name: Installing global packages
script: |
npm install -g semver@7.6.0 yarn @sentry/cli node-gyp zx yarn --force
yarn global add semver@7.6.0
npm install -g yarn @sentry/cli node-gyp zx yarn --force
- &install_app_packages
name: Installing app packages
Expand Down
4 changes: 2 additions & 2 deletions internals/scripts/CheckYarn.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
const { execSync } = require('child_process');
const semver = require('semver');
const { semverSatisfies } = require('./semver');

const requiredVersionRange = '>=6.x <=8.16.0';

try {
const npmVersion = execSync('npm -v').toString().trim();

if (!semver.satisfies(npmVersion, requiredVersionRange)) {
if (!semverSatisfies(npmVersion, requiredVersionRange)) {
console.error(
`Error: This project requires npm version ${requiredVersionRange}. You have version ${npmVersion}.\nPlease downgrade your npm, this is due to a bug in node-gyp. Github issue: https://github.com/ganeshrvel/openmtp/issues/367.\ncommand: npm install -g npm@8.16.0`
);
Expand Down
36 changes: 36 additions & 0 deletions internals/scripts/semver.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
exports.semverSatisfies = (version, range) => {
const [gtOp, gtVersion] = gtSemver(range);
const [ltOp, ltVersion] = ltSemver(range);
const versionParts = version.split('.').map(Number);
const gtVersionParts = gtVersion.split('.').map(Number);
const ltVersionParts = ltVersion.split('.').map(Number);

// eslint-disable-next-line no-plusplus
for (let i = 0; i < 3; i++) {
const vp = versionParts[i] || 0;
const gtvp = gtVersionParts[i] || 0;
const ltvp = ltVersionParts[i] || 0;

if (vp > ltvp || (vp === ltvp && ltOp === '<')) {
return false;
}

if (vp < gtvp || (vp === gtvp && gtOp === '>')) {
return false;
}
}

return true;
};

const gtSemver = (range) => {
const gtPattern = />=?\s*(\d+(?:\.\d+(?:\.\d+)?)?)/.exec(range);

return gtPattern ? ['>=', gtPattern[1]] : ['>=', '0.0.0'];
};

const ltSemver = (range) => {
const ltPattern = /<=?\s*(\d+(?:\.\d+(?:\.\d+)?)?)/.exec(range);

return ltPattern ? ['<=', ltPattern[1]] : ['<=', '9999.9999.9999'];
};

0 comments on commit 362c3ed

Please sign in to comment.