-
由 Ryan Groch 提交于
Closes #817. A while back, I had opened #960 for the same issue, and I thought I would give it a second try. Unlike my previous PR, this time I implemented the AppImage maker myself. Given that security concerns came up last time, I feel obligated to mention the following: 1. This code does run `mksquashfs` (technically a third-party executable) in the same environment as the signing keys. However, it's widely used and is present on the GitHub runner by default. 2. My code also fetches the AppImage runtime during build, but this gets embedded in the AppImage and never runs on the server. As such, it would not be able to access the signing keys even if it theoretically had a vulnerability or was infected. If we're including an AppImage in the releases going forward, I don't think that either of the above two points are easily avoidable. We _could_ handle the second point by storing our own static version of the AppImage runtime, but I don't think that's particularly elegant or desirable. Of course, please feel free to let me know if you'd like any changes. Thanks! <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Adds an AppImage maker to Electron Forge and includes a Linux x86_64 AppImage in release assets. - **New Features** - Implements MakerAppImage that builds the AppDir, generates the .desktop file, embeds the app icon, sets AppRun, and packs with mksquashfs. - Fetches the AppImage runtime at build time, verifies its SHA-256, and embeds it; it never executes on CI. - Integrates into forge.config and release asset checks. Output: dyad_{version}_x86_64.AppImage. - **Dependencies** - Requires mksquashfs on the build host (available on GitHub runners). <sup>Written for commit 8bdb3840b906cc74a852704be50acb1b4d08fc97. Summary will update on new commits.</sup> <!-- End of auto-generated description by cubic. --> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Introduces Linux AppImage packaging and aligns release checks. > > - Adds `MakerAppImage` that assembles `AppDir`, generates `.desktop`, embeds icon, creates `AppRun` symlink, packs with `mksquashfs`, and prepends the fetched AppImage runtime after SHA-256 verification > - Integrates maker in `forge.config.ts` (outputs `dyad_{version}_x86_64.AppImage`; linux x64; requires `mksquashfs`) > - Updates `scripts/verify-release-assets.js` to include the AppImage in expected assets > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8bdb3840b906cc74a852704be50acb1b4d08fc97. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->