upload-to-release.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const { execSync } = require('child_process')
  2. const { join } = require('path')
  3. const { Octokit } = require('@octokit/rest')
  4. const chalk = require('chalk')
  5. const putasset = require('putasset')
  6. const platforms = require('./platforms')
  7. const version =
  8. 'v' +
  9. execSync('git log -1 --pretty=%B', {
  10. encoding: 'utf8',
  11. }).trim('')
  12. ;(async () => {
  13. const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/')
  14. const octokit = new Octokit({
  15. auth: process.env.GITHUB_TOKEN,
  16. })
  17. await octokit.repos.createRelease({
  18. owner,
  19. repo,
  20. tag_name: version,
  21. })
  22. await Promise.all(
  23. platforms.map(async (platform) => {
  24. const binary = join(__dirname, '..', `bindings-${platform}`, `index.${platform}.node`)
  25. const downloadUrl = await putasset(process.env.GITHUB_TOKEN, {
  26. owner,
  27. repo,
  28. tag: version,
  29. filename: binary,
  30. })
  31. console.info(`${chalk.green(binary)} upload success`)
  32. console.info(`Download url: ${chalk.blueBright(downloadUrl)}`)
  33. }),
  34. )
  35. })().catch((e) => {
  36. console.error(e)
  37. })