aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/deploy.js
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/deploy.js')
-rw-r--r--.github/workflows/deploy.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/.github/workflows/deploy.js b/.github/workflows/deploy.js
new file mode 100644
index 00000000..82ebb1bd
--- /dev/null
+++ b/.github/workflows/deploy.js
@@ -0,0 +1,73 @@
+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}`)
+ }
+}