deploy.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. module.exports = async ({github, context, core}) => {
  2. try {
  3. await github.rest.git.updateRef({
  4. owner: context.repo.owner,
  5. repo: context.repo.repo,
  6. ref: 'tags/main-tot',
  7. sha: context.sha
  8. })
  9. } catch (error) {
  10. core.setFailed(`upload main-tot tag; ${error.name}; ${error.message}`)
  11. }
  12. let release
  13. try {
  14. release = await github.rest.repos.getReleaseByTag({
  15. owner: context.repo.owner,
  16. repo: context.repo.repo,
  17. tag: 'main-tot'
  18. })
  19. } catch (error) {
  20. core.setFailed(`get the main release; ${error.name}; ${error.message}`)
  21. }
  22. try {
  23. await github.rest.repos.updateRelease({
  24. owner: context.repo.owner,
  25. repo: context.repo.repo,
  26. release_id: release.data.id
  27. })
  28. } catch (error) {
  29. core.setFailed(`update the main release; ${error.name}; ${error.message}`)
  30. }
  31. let release_assets
  32. try {
  33. release_assets = await github.rest.repos.listReleaseAssets({
  34. owner: context.repo.owner,
  35. repo: context.repo.repo,
  36. release_id: release.data.id
  37. })
  38. } catch (error) {
  39. core.setFailed(`list release assets; ${error.name}; ${error.message}`)
  40. }
  41. const { ARCHIVE } = process.env
  42. for (const release_asset of release_assets.data) {
  43. if (release_asset.name === `${ ARCHIVE }`) {
  44. try {
  45. await github.rest.repos.deleteReleaseAsset({
  46. owner: context.repo.owner,
  47. repo: context.repo.repo,
  48. asset_id: release_asset.id
  49. })
  50. } catch (error) {
  51. core.setFailed(`delete ${ ARCHIVE }; ${error.name}; ${error.message}`)
  52. }
  53. }
  54. }
  55. try {
  56. const asset_path = `./build/install/${ ARCHIVE }`
  57. const fs = require("fs")
  58. await github.rest.repos.uploadReleaseAsset({
  59. owner: context.repo.owner,
  60. repo: context.repo.repo,
  61. release_id: release.data.id,
  62. name: `${ ARCHIVE }`,
  63. data: fs.readFileSync(asset_path)
  64. })
  65. } catch (error) {
  66. core.setFailed(`upload ${ ARCHIVE }; ${error.name}; ${error.message}`)
  67. }
  68. }