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: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
sudo apt-get update
|
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
|
rpmbuild --version
|
||||||
|
file --version
|
||||||
|
|
||||||
- name: Resolve macOS signing mode
|
- name: Resolve macOS signing mode
|
||||||
id: macos-signing
|
id: macos-signing
|
||||||
@@ -312,6 +313,15 @@ jobs:
|
|||||||
ELECTRON_CACHE: ${{ runner.temp }}/electron
|
ELECTRON_CACHE: ${{ runner.temp }}/electron
|
||||||
ELECTRON_BUILDER_CACHE: ${{ runner.temp }}/electron-builder
|
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
|
- name: Upload release packages
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
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) {
|
function verifyArtifactSignature(filePath, format, arch) {
|
||||||
if (format === 'nsis') {
|
if (format === 'nsis') {
|
||||||
if (readChunk(filePath, 2).toString('ascii') !== 'MZ') {
|
if (readChunk(filePath, 2).toString('ascii') !== 'MZ') {
|
||||||
@@ -1656,6 +1681,7 @@ async function main(argv = process.argv.slice(2)) {
|
|||||||
builderArguments,
|
builderArguments,
|
||||||
electronBuilderEnvironment(options)
|
electronBuilderEnvironment(options)
|
||||||
)
|
)
|
||||||
|
normalizeAppImageArtifact(stagingDirectory, options)
|
||||||
const unpackedDirectory = verifyUnpackedOutput(
|
const unpackedDirectory = verifyUnpackedOutput(
|
||||||
stagingDirectory,
|
stagingDirectory,
|
||||||
options
|
options
|
||||||
@@ -1718,6 +1744,7 @@ module.exports = {
|
|||||||
verifyUnpackedOutput,
|
verifyUnpackedOutput,
|
||||||
verifyArtifacts,
|
verifyArtifacts,
|
||||||
verifyArtifactSignature,
|
verifyArtifactSignature,
|
||||||
|
normalizeAppImageArtifact,
|
||||||
verifyPortableZip,
|
verifyPortableZip,
|
||||||
writeManifest
|
writeManifest
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,6 +87,9 @@
|
|||||||
: format === "rpm"
|
: format === "rpm"
|
||||||
? "aarch64"
|
? "aarch64"
|
||||||
: "arm64";
|
: "arm64";
|
||||||
|
if (format === "AppImage") {
|
||||||
|
return `GoodBuddy-${version}-${artifactArch}.AppImage`;
|
||||||
|
}
|
||||||
return `GoodBuddy-${version}-linux-${artifactArch}.${format}`;
|
return `GoodBuddy-${version}-linux-${artifactArch}.${format}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -42,12 +42,12 @@ const canonicalFileName = (version, platform, arch, format) => {
|
|||||||
zip: `GoodBuddy-${version}-mac-arm64.zip`,
|
zip: `GoodBuddy-${version}-mac-arm64.zip`,
|
||||||
},
|
},
|
||||||
"linux-x64": {
|
"linux-x64": {
|
||||||
AppImage: `GoodBuddy-${version}-linux-x86_64.AppImage`,
|
AppImage: `GoodBuddy-${version}-x86_64.AppImage`,
|
||||||
deb: `GoodBuddy-${version}-linux-amd64.deb`,
|
deb: `GoodBuddy-${version}-linux-amd64.deb`,
|
||||||
rpm: `GoodBuddy-${version}-linux-x86_64.rpm`,
|
rpm: `GoodBuddy-${version}-linux-x86_64.rpm`,
|
||||||
},
|
},
|
||||||
"linux-arm64": {
|
"linux-arm64": {
|
||||||
AppImage: `GoodBuddy-${version}-linux-arm64.AppImage`,
|
AppImage: `GoodBuddy-${version}-arm64.AppImage`,
|
||||||
deb: `GoodBuddy-${version}-linux-arm64.deb`,
|
deb: `GoodBuddy-${version}-linux-arm64.deb`,
|
||||||
rpm: `GoodBuddy-${version}-linux-aarch64.rpm`,
|
rpm: `GoodBuddy-${version}-linux-aarch64.rpm`,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user