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
+11 -1
View File
@@ -206,8 +206,9 @@ jobs:
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install --no-install-recommends --yes rpm
sudo apt-get install --no-install-recommends --yes rpm file
rpmbuild --version
file --version
- name: Resolve macOS signing mode
id: macos-signing
@@ -312,6 +313,15 @@ jobs:
ELECTRON_CACHE: ${{ runner.temp }}/electron
ELECTRON_BUILDER_CACHE: ${{ runner.temp }}/electron-builder
- name: Verify AppImage uses SquashFS
if: matrix.platform == 'linux'
shell: bash
run: |
set -euo pipefail
appimage="$(find "dist/release/${{ matrix.platform }}-${{ matrix.arch }}" -maxdepth 1 -type f -name '*.AppImage' -print -quit)"
test -n "$appimage"
file "$appimage" | grep -qi squashfs
- name: Upload release packages
uses: actions/upload-artifact@v7
with:
+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
}
+3
View File
@@ -87,6 +87,9 @@
: format === "rpm"
? "aarch64"
: "arm64";
if (format === "AppImage") {
return `GoodBuddy-${version}-${artifactArch}.AppImage`;
}
return `GoodBuddy-${version}-linux-${artifactArch}.${format}`;
};
+2 -2
View File
@@ -42,12 +42,12 @@ const canonicalFileName = (version, platform, arch, format) => {
zip: `GoodBuddy-${version}-mac-arm64.zip`,
},
"linux-x64": {
AppImage: `GoodBuddy-${version}-linux-x86_64.AppImage`,
AppImage: `GoodBuddy-${version}-x86_64.AppImage`,
deb: `GoodBuddy-${version}-linux-amd64.deb`,
rpm: `GoodBuddy-${version}-linux-x86_64.rpm`,
},
"linux-arm64": {
AppImage: `GoodBuddy-${version}-linux-arm64.AppImage`,
AppImage: `GoodBuddy-${version}-arm64.AppImage`,
deb: `GoodBuddy-${version}-linux-arm64.deb`,
rpm: `GoodBuddy-${version}-linux-aarch64.rpm`,
},