From 957f58ac6cb9909f838c9c2e8c1e93c1311dbd38 Mon Sep 17 00:00:00 2001 From: Mo Date: Fri, 17 Jun 2022 08:56:10 -0500 Subject: [PATCH] chore(workflow): fix desktop sums --- .github/workflows/desktop.release.reuse.yml | 1 + packages/components/scripts/VERSION.sh | 1 + packages/desktop/scripts/sums.mjs | 87 +++++++-------------- scripts/ScriptUtils.mjs | 4 + 4 files changed, 34 insertions(+), 59 deletions(-) diff --git a/.github/workflows/desktop.release.reuse.yml b/.github/workflows/desktop.release.reuse.yml index 66b929df0..61f9cdafe 100644 --- a/.github/workflows/desktop.release.reuse.yml +++ b/.github/workflows/desktop.release.reuse.yml @@ -150,6 +150,7 @@ jobs: - uses: actions/setup-node@v2 with: registry-url: 'https://registry.npmjs.org' + - uses: actions/download-artifact@v3 with: name: assets diff --git a/packages/components/scripts/VERSION.sh b/packages/components/scripts/VERSION.sh index a3c936a7c..928a2bc12 100755 --- a/packages/components/scripts/VERSION.sh +++ b/packages/components/scripts/VERSION.sh @@ -1,3 +1,4 @@ +#!/bin/bash echo 'Compiling components from' $(pwd) diff --git a/packages/desktop/scripts/sums.mjs b/packages/desktop/scripts/sums.mjs index 0ba5c55a5..23beb0dcd 100644 --- a/packages/desktop/scripts/sums.mjs +++ b/packages/desktop/scripts/sums.mjs @@ -6,14 +6,9 @@ import { fileURLToPath } from 'url' const __filename = fileURLToPath(import.meta.url) const ScriptsDir = path.dirname(__filename) -import { doesFileExist } from '../../../scripts/ScriptUtils.mjs' +import { doesFileExist, listDirFiles } from '../../../scripts/ScriptUtils.mjs' function sha256(filePath) { - if (!doesFileExist(filePath)) { - console.log('Attempting to hash non-existing file', filePath) - return null - } - return new Promise((resolve) => { try { fs.createReadStream(filePath) @@ -31,43 +26,6 @@ function sha256(filePath) { }) } -async function getFileNames() { - const packageJson = await fs.promises.readFile(path.join(ScriptsDir, '../package.json')) - const version = JSON.parse(packageJson).version - return [ - `standard-notes-${version}-mac-x64.zip`, - `standard-notes-${version}-mac-x64.dmg`, - `standard-notes-${version}-mac-x64.dmg.blockmap`, - - `standard-notes-${version}-mac-arm64.zip`, - `standard-notes-${version}-mac-arm64.dmg`, - `standard-notes-${version}-mac-arm64.dmg.blockmap`, - - `standard-notes-${version}-linux-i386.AppImage`, - `standard-notes-${version}-linux-x86_64.AppImage`, - `standard-notes-${version}-linux-amd64.snap`, - - `standard-notes-${version}-linux-arm64.deb`, - `standard-notes-${version}-linux-arm64.AppImage`, - - `standard-notes-${version}-win-x64.exe`, - `standard-notes-${version}-win-x64.exe.blockmap`, - - `standard-notes-${version}-win.exe`, - `standard-notes-${version}-win.exe.blockmap`, - - `standard-notes-${version}-win-ia32.exe`, - `standard-notes-${version}-win-ia32.exe.blockmap`, - - 'latest-linux-ia32.yml', - 'latest-linux.yml', - 'latest-linux-arm64.yml', - 'latest-mac.yml', - 'latest.yml', - 'builder-effective-config.yaml', - ] -} - process.on('uncaughtException', function (err) { console.log('Caught exception: ' + err) }) @@ -75,26 +33,37 @@ process.on('uncaughtException', function (err) { console.log('Writing SHA256 sums to dist/SHA256SUMS') try { - const files = await getFileNames() + const distDir = path.join(ScriptsDir, '../dist') + const fileNames = listDirFiles(distDir) + const filePaths = fileNames.map((fileName) => path.join(distDir, fileName)) - let hashes = await Promise.all( - files.map(async (fileName) => { - const filePath = path.join(ScriptsDir, `../dist/${fileName}`) - try { - const hash = await sha256(filePath) - const entry = `${hash} ${fileName}` - return entry - } catch (error) { - console.error('Unable to hash file', filePath) - return null - } - }), - ) + const entries = [] - hashes = hashes.join('\n') + for (const filePath of filePaths) { + if (!doesFileExist(filePath)) { + console.log('Attempting to hash non-existing file', filePath) + continue + } + if (fs.lstatSync(filePath).isDirectory()) { + console.log('Attempting to hash directory', filePath) + continue + } + + try { + const hash = await sha256(filePath) + const fileName = path.basename(filePath) + const entry = `${hash} ${fileName}` + entries.push(entry) + } catch (error) { + console.error('Unable to hash file', filePath) + continue + } + } + + const hashes = entries.join('\n') await fs.promises.writeFile(path.join(ScriptsDir, '../dist/SHA256SUMS'), hashes) console.log(`Successfully wrote SHA256SUMS:\n${hashes}`) } catch (err) { - console.error(err) + console.error('Error generating checksums', err) } })() diff --git a/scripts/ScriptUtils.mjs b/scripts/ScriptUtils.mjs index 0b39b97ec..2c5278013 100644 --- a/scripts/ScriptUtils.mjs +++ b/scripts/ScriptUtils.mjs @@ -19,3 +19,7 @@ export const emptyExistingDir = (dir) => { fs.rmSync(dir, { recursive: true }) } } + +export const listDirFiles = (dir) => { + return fs.readdirSync(dir) +}