mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-06 08:24:46 +00:00
PR runners were rebuilding distribution artifacts and executing the entire CLI source suite on all three E2E shards. Keep packaging coverage after merge, let the local E2E runner own its dependency build, and execute source tests once in an existing required check. Root typecheck already validates plugin examples.
79 lines
3.0 KiB
YAML
79 lines
3.0 KiB
YAML
name: Desktop Packages
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
ONNXRUNTIME_NODE_INSTALL: skip
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 30
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: "npm"
|
|
|
|
- name: Install dependencies
|
|
run: node scripts/npm-retry.mjs ci
|
|
|
|
- name: Install package smoke dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y xvfb xauth rpm
|
|
|
|
- name: Build Linux desktop artifacts
|
|
# Smoke package contents and installation without spending minutes on xz compression.
|
|
run: |
|
|
printf '{"extends":"%s/packages/desktop/electron-builder.yml","deb":{"compression":"gz"},"rpm":{"fpm":["--rpm-compression=gzip"]}}' "$GITHUB_WORKSPACE" > "$RUNNER_TEMP/desktop-smoke-builder.json"
|
|
npm run build:desktop -- --publish never --linux --x64 --config "$RUNNER_TEMP/desktop-smoke-builder.json"
|
|
env:
|
|
EP_GH_IGNORE_TIME: true
|
|
PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke
|
|
|
|
- name: Smoke installed artifacts with restricted user namespaces
|
|
run: |
|
|
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1
|
|
if unshare --user --map-root-user --net true; then
|
|
echo "Expected the launching user's namespace probe to be denied"
|
|
exit 1
|
|
fi
|
|
sudo apt-get install -y ./packages/desktop/release/*.deb
|
|
node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release disabled
|
|
env:
|
|
PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/restricted
|
|
|
|
- name: Smoke sandbox-preserving portable launches
|
|
run: |
|
|
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
|
|
unshare --user --map-root-user --net true
|
|
node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release enabled
|
|
env:
|
|
PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/userns
|
|
|
|
- name: Smoke installed RPM with restricted user namespaces
|
|
run: |
|
|
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=1
|
|
sudo dpkg --remove paseo
|
|
# Ubuntu supplies the runtime libraries under Debian package names.
|
|
# RPM still performs the real payload installation and postinstall.
|
|
sudo rpm --install --nodeps packages/desktop/release/*.rpm
|
|
node packages/desktop/e2e/linux-artifact-smoke.js packages/desktop/release disabled --installed-only
|
|
env:
|
|
PASEO_DESKTOP_SMOKE_ARTIFACT_DIR: ${{ runner.temp }}/desktop-smoke/rpm
|
|
|
|
- name: Upload packaged smoke diagnostics
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: desktop-packaged-smoke-linux-x64
|
|
path: ${{ runner.temp }}/desktop-smoke
|
|
if-no-files-found: ignore
|
|
retention-days: 7
|