fix(release): publish AppImages with SquashFS names
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
Deploy website to GitHub Pages / Deploy static website (push) Canceled after 0s

This commit is contained in:
mesalogo
2026-10-14 00:22:53 +08:00
parent 5e255747ee
commit af86e2f8a1
4 changed files with 43 additions and 3 deletions
+27
View File
@@ -1419,6 +1419,31 @@ function verifyArtifacts(directory, options) {
}
}
function normalizeAppImageArtifact(directory, options) {
if (!options.formats.includes('AppImage')) {
return
}
const candidates = readdirSync(directory, { withFileTypes: true })
.filter((entry) => entry.isFile() && entry.name.endsWith('.AppImage'))
.map((entry) => entry.name)
if (candidates.length !== 1) {
throw new Error(
`AppImage 产物数量错误:${candidates.join(', ') || '未生成'}`
)
}
const artifactName =
`${productName}-${packageJson.version}-` +
`${options.arch === 'x64' ? 'x86_64' : 'arm64'}.AppImage`
const source = join(directory, candidates[0])
const destination = join(directory, artifactName)
if (source !== destination) {
if (existsSync(destination)) {
throw new Error(`AppImage 目标文件已存在:${artifactName}`)
}
renameSync(source, destination)
}
}
function verifyArtifactSignature(filePath, format, arch) {
if (format === 'nsis') {
if (readChunk(filePath, 2).toString('ascii') !== 'MZ') {
@@ -1656,6 +1681,7 @@ async function main(argv = process.argv.slice(2)) {
builderArguments,
electronBuilderEnvironment(options)
)
normalizeAppImageArtifact(stagingDirectory, options)
const unpackedDirectory = verifyUnpackedOutput(
stagingDirectory,
options
@@ -1718,6 +1744,7 @@ module.exports = {
verifyUnpackedOutput,
verifyArtifacts,
verifyArtifactSignature,
normalizeAppImageArtifact,
verifyPortableZip,
writeManifest
}