mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
67 lines
2.4 KiB
JavaScript
67 lines
2.4 KiB
JavaScript
|
const path = require("path");
|
||
|
const fs = require("fs");
|
||
|
const execSync = require("child_process").execSync;
|
||
|
const { Octokit } = require("@octokit/rest");
|
||
|
const buildutils = require("./buildutils");
|
||
|
|
||
|
function gulptasksReleaseUploader($, gulp, buildFolder) {
|
||
|
const standaloneDir = path.join(__dirname, "..", "tmp_standalone_files");
|
||
|
const darwinApp = path.join(standaloneDir, "shapez.io-standalone-darwin-x64", "shapez.io-standalone.app");
|
||
|
const dmgName = "shapez.io-standalone.dmg";
|
||
|
const dmgPath = path.join(standaloneDir, "shapez.io-standalone-darwin-x64", dmgName);
|
||
|
|
||
|
gulp.task("standalone.uploadRelease.darwin64.cleanup", () => {
|
||
|
return gulp.src(dmgPath, { read: false, allowEmpty: true }).pipe($.clean({ force: true }));
|
||
|
});
|
||
|
|
||
|
gulp.task("standalone.uploadRelease.darwin64.compress", cb => {
|
||
|
console.log("Packaging disk image", dmgPath);
|
||
|
execSync(`hdiutil create -format UDBZ -srcfolder ${darwinApp} ${dmgPath}`);
|
||
|
cb();
|
||
|
});
|
||
|
|
||
|
gulp.task("standalone.uploadRelease.darwin64.upload", async cb => {
|
||
|
const currentTag = buildutils.getTag();
|
||
|
|
||
|
const octokit = new Octokit({
|
||
|
auth: process.env.SHAPEZ_CLI_GITHUB_TOKEN
|
||
|
});
|
||
|
|
||
|
const createdRelease = await octokit.request("POST /repos/{owner}/{repo}/releases", {
|
||
|
owner: process.env.SHAPEZ_CLI_GITHUB_USER,
|
||
|
repo: "shapez.io",
|
||
|
tag_name: currentTag,
|
||
|
name: currentTag,
|
||
|
draft: true
|
||
|
});
|
||
|
|
||
|
const { data: { id, upload_url } } = createdRelease;
|
||
|
console.log(`Created release ${id} for tag ${currentTag}`);
|
||
|
|
||
|
const dmgContents = fs.readFileSync(dmgPath);
|
||
|
const dmgSize = fs.statSync(dmgPath).size;
|
||
|
console.log("Uploading", dmgContents.length / 1024 / 1024, "MB to", upload_url);
|
||
|
|
||
|
await octokit.request({
|
||
|
method: "POST",
|
||
|
url: upload_url,
|
||
|
headers: {
|
||
|
"content-type": "application/x-apple-diskimage"
|
||
|
},
|
||
|
name: dmgName,
|
||
|
data: dmgContents
|
||
|
});
|
||
|
|
||
|
cb();
|
||
|
});
|
||
|
|
||
|
gulp.task("standalone.uploadRelease.darwin64",
|
||
|
gulp.series(
|
||
|
"standalone.uploadRelease.darwin64.cleanup",
|
||
|
"standalone.uploadRelease.darwin64.compress",
|
||
|
"standalone.uploadRelease.darwin64.upload"
|
||
|
));
|
||
|
}
|
||
|
|
||
|
module.exports = { gulptasksReleaseUploader };
|