forked from atom/atom
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-version.js
More file actions
33 lines (27 loc) · 1.32 KB
/
generate-version.js
File metadata and controls
33 lines (27 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const path = require('path')
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
})
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+)$/)
if (versionMatch && versionMatch[1] === baseVersion) {
releaseNumber = parseInt(versionMatch[2]) + 1
}
}
// 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}`)
}
generateNightlyVersion()