| module.exports = async ({github, context, core}) => { |
| try { |
| await github.rest.git.updateRef({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| ref: 'tags/master-tot', |
| sha: context.sha |
| }) |
| } catch (error) { |
| core.setFailed(`upload master-tot tag; ${error.name}; ${error.message}`) |
| } |
| |
| let release |
| try { |
| release = await github.rest.repos.getReleaseByTag({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| tag: 'master-tot' |
| }) |
| } catch (error) { |
| core.setFailed(`get the master release; ${error.name}; ${error.message}`) |
| } |
| |
| try { |
| await github.rest.repos.updateRelease({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| release_id: release.data.id |
| }) |
| } catch (error) { |
| core.setFailed(`update the master release; ${error.name}; ${error.message}`) |
| } |
| |
| let release_assets |
| try { |
| release_assets = await github.rest.repos.listReleaseAssets({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| release_id: release.data.id |
| }) |
| } catch (error) { |
| core.setFailed(`list release assets; ${error.name}; ${error.message}`) |
| } |
| |
| const { ARCHIVE } = process.env |
| for (const release_asset of release_assets.data) { |
| if (release_asset.name === `${ ARCHIVE }`) { |
| try { |
| await github.rest.repos.deleteReleaseAsset({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| asset_id: release_asset.id |
| }) |
| } catch (error) { |
| core.setFailed(`delete ${ ARCHIVE }; ${error.name}; ${error.message}`) |
| } |
| } |
| } |
| |
| try { |
| const asset_path = `./build/install/${ ARCHIVE }` |
| const fs = require("fs") |
| await github.rest.repos.uploadReleaseAsset({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| release_id: release.data.id, |
| name: `${ ARCHIVE }`, |
| data: fs.readFileSync(asset_path) |
| }) |
| } catch (error) { |
| core.setFailed(`upload ${ ARCHIVE }; ${error.name}; ${error.message}`) |
| } |
| } |