1234567891011121314151617181920212223242526272829 |
- const { GitProcess } = require('dugite')
- const path = require('path')
- const semver = require('semver')
- const gitDir = path.resolve(__dirname, '..')
- async function determineNextMajorForMaster () {
- let branchNames
- let result = await GitProcess.exec(['branch', '-a', '--remote', '--list', 'origin/[0-9]-[0-9]-x'], gitDir)
- if (result.exitCode === 0) {
- branchNames = result.stdout.trim().split('\n')
- const filtered = branchNames.map(b => b.replace('origin/', ''))
- return getNextReleaseBranch(filtered)
- } else {
- throw new Error('Release branches could not be fetched.')
- }
- }
- function getNextReleaseBranch (branches) {
- const converted = branches.map(b => b.replace(/-/g, '.').replace('x', '0'))
- const next = converted.reduce((v1, v2) => {
- return semver.gt(v1, v2) ? v1 : v2
- })
- return parseInt(next.split('.')[0], 10)
- }
- determineNextMajorForMaster().then(console.info).catch((err) => {
- console.error(err)
- process.exit(1)
- })
|