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
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:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -87,6 +87,9 @@
|
||||
: format === "rpm"
|
||||
? "aarch64"
|
||||
: "arm64";
|
||||
if (format === "AppImage") {
|
||||
return `GoodBuddy-${version}-${artifactArch}.AppImage`;
|
||||
}
|
||||
return `GoodBuddy-${version}-linux-${artifactArch}.${format}`;
|
||||
};
|
||||
|
||||
|
||||
@@ -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`,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user