57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
const fs = require('fs')
 | 
						|
const ghRelease = require('gh-release')
 | 
						|
const token = require('./githubToken')
 | 
						|
const pkg = require('../../package.json')
 | 
						|
const { jp } = require('./index')
 | 
						|
 | 
						|
const changeLog = fs.readFileSync(jp('../changeLog.md'), 'utf-8')
 | 
						|
 | 
						|
const assetsDir = '../assets'
 | 
						|
 | 
						|
const getBuildFiles = () => {
 | 
						|
  const files = []
 | 
						|
  const pathRegExp = [
 | 
						|
    /latest\.yml$/,
 | 
						|
    /\.exe$/,
 | 
						|
    /\.blockmap$/,
 | 
						|
  ]
 | 
						|
  const names = fs.readdirSync(jp(assetsDir), 'utf8')
 | 
						|
  names.forEach(name => {
 | 
						|
    pathRegExp.forEach(regexp => {
 | 
						|
      if (regexp.test(name)) files.push(jp(assetsDir, name))
 | 
						|
    })
 | 
						|
  })
 | 
						|
  return files
 | 
						|
}
 | 
						|
 | 
						|
// all options have defaults and can be omitted
 | 
						|
const options = {
 | 
						|
  tag_name: `v${pkg.version}`,
 | 
						|
  target_commitish: 'master',
 | 
						|
  name: `v${pkg.version}`,
 | 
						|
  body: changeLog,
 | 
						|
  draft: false,
 | 
						|
  prerelease: false,
 | 
						|
  repo: pkg.name,
 | 
						|
  owner: pkg.author,
 | 
						|
  endpoint: 'https://api.github.com', // for GitHub enterprise, use http(s)://hostname/api/v3
 | 
						|
  auth: {
 | 
						|
    token,
 | 
						|
  },
 | 
						|
  assets: getBuildFiles(),
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
module.exports = ({ isDraft = false, isPrerelease = false, target_commitish = 'master' }) => new Promise((resolve, reject) => {
 | 
						|
  options.target_commitish = target_commitish
 | 
						|
  options.draft = isDraft
 | 
						|
  options.prerelease = isPrerelease
 | 
						|
 | 
						|
  ghRelease(options, function(err, result) {
 | 
						|
    if (err) return reject(err)
 | 
						|
    resolve(result)
 | 
						|
    console.log(result) // create release response: https://developer.github.com/v3/repos/releases/#response-4
 | 
						|
  })
 | 
						|
})
 | 
						|
 |