mirror of
https://github.com/atom/atom.git
synced 2026-01-26 07:19:06 -05:00
Consolidate release version logic
This commit is contained in:
@@ -3,31 +3,43 @@ const request = require('request-promise-native')
|
||||
|
||||
const repositoryRootPath = path.resolve(__dirname, '..', '..')
|
||||
const appMetadata = require(path.join(repositoryRootPath, 'package.json'))
|
||||
const baseVersion = appMetadata.version.split('-')[0]
|
||||
|
||||
async function generateNightlyVersion () {
|
||||
const releases = await request({
|
||||
url: 'https://api.github.com/repos/atom/atom-nightly-releases/releases',
|
||||
headers: {'Accept': 'application/vnd.github.v3+json', 'User-Agent': 'Atom Release Build'},
|
||||
json: true
|
||||
})
|
||||
const yargs = require('yargs')
|
||||
const argv = yargs
|
||||
.usage('Usage: $0 [options]')
|
||||
.help('help')
|
||||
.describe('nightly', 'Indicates that a nightly version should be produced')
|
||||
.wrap(yargs.terminalWidth())
|
||||
.argv
|
||||
|
||||
let releaseNumber = 0
|
||||
if (releases && releases.length > 0) {
|
||||
const latestRelease = releases.find(r => !r.draft)
|
||||
const versionMatch = latestRelease.tag_name.match(/^v?(\d+\.\d+\.\d+)-nightly(\d+)$/)
|
||||
async function getReleaseVersion () {
|
||||
let releaseVersion = appMetadata.version
|
||||
if (argv.nightly) {
|
||||
const releases = await request({
|
||||
url: 'https://api.github.com/repos/atom/atom-nightly-releases/releases',
|
||||
headers: {'Accept': 'application/vnd.github.v3+json', 'User-Agent': 'Atom Release Build'},
|
||||
json: true
|
||||
})
|
||||
|
||||
if (versionMatch && versionMatch[1] === baseVersion) {
|
||||
releaseNumber = parseInt(versionMatch[2]) + 1
|
||||
let releaseNumber = 0
|
||||
const baseVersion = appMetadata.version.split('-')[0]
|
||||
if (releases && releases.length > 0) {
|
||||
const latestRelease = releases.find(r => !r.draft)
|
||||
const versionMatch = latestRelease.tag_name.match(/^v?(\d+\.\d+\.\d+)-nightly(\d+)$/)
|
||||
|
||||
if (versionMatch && versionMatch[1] === baseVersion) {
|
||||
releaseNumber = parseInt(versionMatch[2]) + 1
|
||||
}
|
||||
}
|
||||
|
||||
releaseVersion = `${baseVersion}-nightly${releaseNumber}`
|
||||
}
|
||||
|
||||
// Set our ReleaseVersion build variable and update VSTS' build number to
|
||||
// include the version. Writing these strings to stdout causes VSTS to set
|
||||
// the associated variables.
|
||||
const generatedVersion = `${baseVersion}-nightly${releaseNumber}`
|
||||
console.log(`##vso[task.setvariable variable=ReleaseVersion;isOutput=true]${generatedVersion}`)
|
||||
console.log(`##vso[build.updatebuildnumber]${generatedVersion}+${process.env.BUILD_BUILDNUMBER}`)
|
||||
console.log(`##vso[task.setvariable variable=ReleaseVersion;isOutput=true]${releaseVersion}`)
|
||||
console.log(`##vso[build.updatebuildnumber]${releaseVersion}+${process.env.BUILD_BUILDNUMBER}`)
|
||||
}
|
||||
|
||||
generateNightlyVersion()
|
||||
getReleaseVersion()
|
||||
|
||||
@@ -8,7 +8,7 @@ phases:
|
||||
cd script\vsts
|
||||
npm install
|
||||
displayName: npm install
|
||||
- script: node script\vsts\generate-version.js
|
||||
- script: node script\vsts\generate-version.js --nightly
|
||||
name: Version
|
||||
|
||||
# Import OS-specific build definitions
|
||||
|
||||
Reference in New Issue
Block a user