Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 14 additions & 23 deletions scripts/generate-releases-manifest.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
// }
// },
// "win32": {
// "x64": {
// "sha": "abcdef1234567890",
// "url": "https://cdn.a8c-ci.services/studio/studio-win32-x64-abcdef1234567890.exe.zip"
// }
// "sha": "abcdef1234567890",
// "url": "https://cdn.a8c-ci.services/studio/studio-win32-x64-abcdef1234567890.exe.zip"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no additional architecture sub-level for the Windows builds.

Comment thread
mokagio marked this conversation as resolved.
Outdated
// }
// },
// "1.0.0": {
Expand All @@ -43,6 +41,9 @@ import path from 'path';
import { fileURLToPath } from 'url';
import packageJson from '../package.json' assert { type: 'json' };

const cdnURL = 'https://cdn.a8c-ci.services/studio';
const baseName = 'studio';

const currentCommit = child_process.execSync( 'git rev-parse --short HEAD' ).toString().trim();
const { version } = packageJson;
const isDevBuild = version.includes( '-dev.' );
Expand All @@ -65,7 +66,7 @@ try {
const releasesFile = createWriteStream( releasesPath, { flags: 'w' } ); // 'w', we want to override any existing file

const downloaded = await new Promise( ( resolve, reject ) => {
https.get( 'https://cdn.a8c-ci.services/studio/releases.json', ( response ) => {
https.get( `${ cdnURL }/releases.json`, ( response ) => {
if ( response.statusCode === 404 || response.statusCode === 403 ) {
resolve( false );
return;
Expand Down Expand Up @@ -102,65 +103,55 @@ if ( isDevBuild ) {
throw new Error( 'Missing latest commit hash' );
}

const devVersionZipFilenameMac = `https://cdn.a8c-ci.services/studio/studio-darwin-${ currentCommit }.app.zip`;
const devVersionZipFilenameX64 = `https://cdn.a8c-ci.services/studio/studio-darwin-x64-${ currentCommit }.app.zip`;
const devVersionZipFilenameArm64 = `https://cdn.a8c-ci.services/studio/studio-darwin-arm64-${ currentCommit }.app.zip`;
const devVersionZipFilenameWin32 = `https://cdn.a8c-ci.services/studio/studio-win32-${ currentCommit }.exe`;

releasesData[ 'dev' ] = releasesData[ 'dev' ] ?? {};

// macOS
releasesData[ 'dev' ][ 'darwin' ] = releasesData[ 'dev' ][ 'darwin' ] ?? {};
releasesData[ 'dev' ][ 'darwin' ][ 'universal' ] = {
sha: currentCommit,
url: devVersionZipFilenameMac,
url: `${ cdnURL }/${ baseName }-darwin-${ currentCommit }.app.zip`,
};
releasesData[ 'dev' ][ 'darwin' ][ 'x64' ] = {
sha: currentCommit,
url: devVersionZipFilenameX64,
url: `${ cdnURL }/${ baseName }-darwin-x64-${ currentCommit }.app.zip`,
};
releasesData[ 'dev' ][ 'darwin' ][ 'arm64' ] = {
sha: currentCommit,
url: devVersionZipFilenameArm64,
url: `${ cdnURL }/${ baseName }-darwin-arm64-${ currentCommit }.app.zip`,
};

// Windows
releasesData[ 'dev' ][ 'win32' ] = {
sha: currentCommit,
url: devVersionZipFilenameWin32,
url: `${ cdnURL }/${ baseName }-win32-${ currentCommit }.exe`,
};

await fs.writeFile( releasesPath, JSON.stringify( releasesData, null, 2 ) );
console.log( 'Overwrote latest dev release' );
} else {
console.log( 'Adding latest release ...' );

const releaseVersionZipFilenameMac = `https://cdn.a8c-ci.services/studio/studio-darwin-v${ version }.app.zip`;
const releaseVersionZipFilenameX64 = `https://cdn.a8c-ci.services/studio/studio-darwin-x64-v${ version }.app.zip`;
const releaseVersionZipFilenameArm64 = `https://cdn.a8c-ci.services/studio/studio-darwin-arm64-v${ version }.app.zip`;
const releaseVersionZipFilenameWin32 = `https://cdn.a8c-ci.services/studio/studio-win32-v${ version }.exe`;

releasesData[ version ] = releasesData[ version ] ?? {};

// macOS
releasesData[ version ][ 'darwin' ] = releasesData[ version ][ 'darwin' ] ?? {};
releasesData[ version ][ 'darwin' ][ 'universal' ] = {
sha: currentCommit,
url: releaseVersionZipFilenameMac,
url: `${ cdnURL }/${ baseName }-darwin-v${ version }.app.zip`,
Comment on lines -138 to +140

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personal take: It's cleaner to inline these URL definitions since they are only ever used once.

};
releasesData[ version ][ 'darwin' ][ 'x64' ] = {
sha: currentCommit,
url: releaseVersionZipFilenameX64,
url: `${ cdnURL }/${ baseName }-darwin-x64-v${ version }.app.zip`,
};
releasesData[ version ][ 'darwin' ][ 'arm64' ] = {
sha: currentCommit,
url: releaseVersionZipFilenameArm64,
url: `${ cdnURL }/${ baseName }-darwin-arm64-v${ version }.app.zip`,
};

// Windows
releasesData[ version ][ 'win32' ] = {
sha: currentCommit,
url: releaseVersionZipFilenameWin32,
url: `${ cdnURL }/${ baseName }-win32-v${ version }.exe`,
};

await fs.writeFile( releasesPath, JSON.stringify( releasesData, null, 2 ) );
Expand Down