|
| 1 | +const { execSync } = require('child_process') |
| 2 | +const { writeFileSync } = require('fs') |
| 3 | +const semver = require('semver') |
| 4 | +const core = require('@actions/core') |
| 5 | + |
| 6 | +const lineBreak = () => { |
| 7 | + console.log('----------------------------------') |
| 8 | +} |
| 9 | + |
| 10 | +lineBreak() |
| 11 | +console.log('Running pre-release version bump script') |
| 12 | + |
| 13 | +import('./args.js').then(({ args }) => { |
| 14 | + const preid = args.preid || 'rc' |
| 15 | + |
| 16 | + lineBreak() |
| 17 | + console.log(`Fetching tag ${preid} from NPM`) |
| 18 | + fetch(`https://registry.npmjs.com/@newrelic/browser-agent/${preid}`) |
| 19 | + .then((response) => response.json()) |
| 20 | + .then((data) => { |
| 21 | + |
| 22 | + const versionJson = require(process.cwd() + '/package.json') |
| 23 | + |
| 24 | + const npmVersion = data.version ? `${semver.major(data.version)}.${semver.minor(data.version)}.${semver.patch(data.version)}` : `0.0.0` |
| 25 | + const [_, npmPreid] = data.version && !!semver.prerelease(data.version) ? semver.prerelease(data.version) : [undefined, -1] |
| 26 | + |
| 27 | + lineBreak() |
| 28 | + console.log('NPM Version, preid value', npmVersion, npmPreid) |
| 29 | + |
| 30 | + const pkgSrc = args.versionOverride || versionJson.version |
| 31 | + const pkgVersion = pkgSrc ? `${semver.major(pkgSrc)}.${semver.minor(pkgSrc)}.${semver.patch(pkgSrc)}` : `0.0.0` |
| 32 | + let [pkgPreidTag, pkgPreid] = pkgSrc && !!semver.prerelease(pkgSrc) ? semver.prerelease(pkgSrc) : [undefined, -1] |
| 33 | + if (pkgPreidTag !== preid) pkgPreid = -1 |
| 34 | + |
| 35 | + lineBreak() |
| 36 | + console.log('Package Version, preid value', pkgVersion, pkgPreid) |
| 37 | + |
| 38 | + if (semver.gte(npmVersion, pkgVersion)) { |
| 39 | + lineBreak() |
| 40 | + console.log(`NPM Version is greater than or the same, setting local pkg version to NPM version (${preid}) + 1`) |
| 41 | + versionJson.version = npmVersion + `-${preid}.` + (Math.max(parseInt(npmPreid), parseInt(pkgPreid)) + 1) |
| 42 | + |
| 43 | + } else { |
| 44 | + lineBreak() |
| 45 | + console.log('NPM Version is less than local pkg version, incrementing local pkg version') |
| 46 | + versionJson.version = pkgVersion + `-${preid}.` + (parseInt(pkgPreid) + 1) |
| 47 | + } |
| 48 | + |
| 49 | + lineBreak() |
| 50 | + console.log('New Pre-release Package Version', versionJson.version) |
| 51 | + |
| 52 | + lineBreak() |
| 53 | + writeFileSync(process.cwd() + '/package.json', JSON.stringify(versionJson, undefined, 2)) |
| 54 | + console.log('Updated package.json') |
| 55 | + |
| 56 | + lineBreak() |
| 57 | + core.setOutput('results', versionJson.version) |
| 58 | + }) |
| 59 | + .catch((error) => { |
| 60 | + console.error('Error fetching data:', error); |
| 61 | + }) |
| 62 | +}) |
0 commit comments