mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-22 04:34:44 +00:00
ci: use cgroups with user's permissions
This commit is contained in:
26
.github/workflows/e2e-test.yml
vendored
26
.github/workflows/e2e-test.yml
vendored
@@ -125,7 +125,14 @@ jobs:
|
|||||||
MAX_MEMORY: 26000 # 26MB (KB)
|
MAX_MEMORY: 26000 # 26MB (KB)
|
||||||
MAX_AVG_DURATION: 17
|
MAX_AVG_DURATION: 17
|
||||||
LIGHTPANDA_DISABLE_TELEMETRY: true
|
LIGHTPANDA_DISABLE_TELEMETRY: true
|
||||||
CG: /sys/fs/cgroup/lpd_${{ github.run_id }}_${{ github.run_attempt }}
|
|
||||||
|
# How to give cgroups access to the user actions-runner on the host:
|
||||||
|
# $ sudo apt install cgroup-tools
|
||||||
|
# $ sudo chmod o+w /sys/fs/cgroup/cgroup.procs
|
||||||
|
# $ sudo mkdir -p /sys/fs/cgroup/actions-runner
|
||||||
|
# $ sudo chown -R actions-runner:actions-runner /sys/fs/cgroup/actions-runner
|
||||||
|
CG_ROOT: /sys/fs/cgroup
|
||||||
|
CG: actions-runner/lpd_${{ github.run_id }}_${{ github.run_attempt }}
|
||||||
|
|
||||||
# use a self host runner.
|
# use a self host runner.
|
||||||
runs-on: lpd-bench-hetzner
|
runs-on: lpd-bench-hetzner
|
||||||
@@ -158,14 +165,8 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo mkdir -p $CG
|
mkdir -p $CG_ROOT/$CG
|
||||||
|
cgexec -g memory:$CG ./lightpanda serve & echo $! > LPD.pid
|
||||||
if [[ -f /sys/fs/cgroup/cgroup.subtree_control ]]; then
|
|
||||||
echo "+memory" | sudo tee /sys/fs/cgroup/cgroup.subtree_control >/dev/null 2>&1 || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
./lightpanda serve & echo $! > LPD.pid
|
|
||||||
cat LPD.pid | sudo tee $CG/cgroup.procs >/dev/null
|
|
||||||
|
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
@@ -183,16 +184,19 @@ jobs:
|
|||||||
while kill -0 $PID 2>/dev/null; do
|
while kill -0 $PID 2>/dev/null; do
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
if [ ! -f $CG/memory.peak ]; then
|
if [ ! -f $CG_ROOT/$CG/memory.peak ]; then
|
||||||
echo "memory.peak not available in $CG"
|
echo "memory.peak not available in $CG"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
PEAK_BYTES=$(cat $CG/memory.peak)
|
PEAK_BYTES=$(cat $CG_ROOT/$CG/memory.peak)
|
||||||
PEAK_KB=$((PEAK_BYTES / 1024))
|
PEAK_KB=$((PEAK_BYTES / 1024))
|
||||||
echo "memory.peak_bytes=$PEAK_BYTES"
|
echo "memory.peak_bytes=$PEAK_BYTES"
|
||||||
echo "memory.peak_kb=$PEAK_KB"
|
echo "memory.peak_kb=$PEAK_KB"
|
||||||
test "$PEAK_KB" -le "$MAX_MEMORY"
|
test "$PEAK_KB" -le "$MAX_MEMORY"
|
||||||
|
|
||||||
|
- name: cleanup cgroup
|
||||||
|
run: rmdir $CG_ROOT/$CG
|
||||||
|
|
||||||
- name: duration regression
|
- name: duration regression
|
||||||
run: |
|
run: |
|
||||||
export PUPPETEER_AVG_DURATION=`cat puppeteer.out|grep 'avg run'|sed 's/avg run duration (ms) //'`
|
export PUPPETEER_AVG_DURATION=`cat puppeteer.out|grep 'avg run'|sed 's/avg run duration (ms) //'`
|
||||||
|
|||||||
Reference in New Issue
Block a user