ci: rehydrate Electron sandbox before validation
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

This commit is contained in:
mesalogo
2026-09-20 12:20:01 +08:00
parent 9e8c98290e
commit 3cd6f44d7d
3 changed files with 17 additions and 7 deletions
+8 -2
View File
@@ -44,8 +44,14 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --yes xvfb xauth
sudo chown root:root node_modules/electron/dist/chrome-sandbox
sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
sandbox="node_modules/electron/dist/chrome-sandbox"
if [[ ! -f "$sandbox" ]]; then
rm -rf node_modules/electron/dist
force_no_cache=true node node_modules/electron/install.js
fi
test -f "$sandbox"
sudo chown root:root "$sandbox"
sudo chmod 4755 "$sandbox"
- name: Run validators
run: |
+4 -3
View File
@@ -45,9 +45,10 @@ to a public channel; follow the user's explicit publication instruction.
workflow. It validates and builds `out` once, then packages on six native
runners: Windows, macOS, and Linux, each for x64 and arm64.
- Linux source validation configures the installed Electron `chrome-sandbox`
helper with root ownership and mode `4755`, then runs the full test suite
under Xvfb. Keep Electron sandboxing enabled; do not skip UI tests or add
`--no-sandbox` to work around runner setup failures.
helper with root ownership and mode `4755`, rehydrates the Electron
distribution without cache when the helper is missing, then runs the full
test suite under Xvfb. Keep Electron sandboxing enabled; do not skip UI tests
or add `--no-sandbox` to work around runner setup failures.
- The experimental Linux LoongArch (`loong64`) preview is built separately
through `build/loongarch-cross` by following
`docs/development/loongarch-preview-build.md`. It is not part of
+5 -2
View File
@@ -59,8 +59,11 @@ describe('desktop packages workflow', () => {
expect(prepareIndex).toBeGreaterThan(installIndex)
expect(validatorsIndex).toBeGreaterThan(prepareIndex)
expect(steps[prepareIndex]?.run).toContain('sudo apt-get install --no-install-recommends --yes xvfb xauth')
expect(steps[prepareIndex]?.run).toContain('sudo chown root:root node_modules/electron/dist/chrome-sandbox')
expect(steps[prepareIndex]?.run).toContain('sudo chmod 4755 node_modules/electron/dist/chrome-sandbox')
expect(steps[prepareIndex]?.run).toContain('if [[ ! -f "$sandbox" ]]')
expect(steps[prepareIndex]?.run).toContain('force_no_cache=true node node_modules/electron/install.js')
expect(steps[prepareIndex]?.run).toContain('test -f "$sandbox"')
expect(steps[prepareIndex]?.run).toContain('sudo chown root:root "$sandbox"')
expect(steps[prepareIndex]?.run).toContain('sudo chmod 4755 "$sandbox"')
expect(steps[validatorsIndex]?.run).toContain('xvfb-run --auto-servernum npm test')
expect(steps[validatorsIndex]?.run).toContain('npm run typecheck')
expect(steps[validatorsIndex]?.run).toContain('npm run lint')