CI: install sshd from a fast mirror, or not at all
archive.ubuntu.com has been crawling (a few KB/s), taking the sshd install in every job from 8 seconds to 3.5-9.5 minutes (another agent measured it; the runner and inference-4090 were healthy). scripts/ci-sshd.sh skips the install when the image has sshd, and otherwise points apt at mirrors.edge.kernel.org first (both source layouts, 22.04 and 24.04). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
1 parent
e35aea5045
commit
ff5a7a644f
3 files changed
+29
-17
No files matched your search
+8
-12
@@ -39,12 +39,10 @@ jobs:
|
||||
|
||||
- name: Install sshd
|
||||
# The tests reach "the build VM" over real SSH, through a throwaway
|
||||
# sshd the test fixture starts (nisse_dev/testing.py).
|
||||
run: |
|
||||
SUDO=$(command -v sudo || true)
|
||||
$SUDO apt-get update -qq
|
||||
$SUDO apt-get install -y -qq openssh-server openssh-client > /dev/null
|
||||
$SUDO mkdir -p /run/sshd
|
||||
# sshd the test fixture starts (nisse_dev/testing.py). Skipped when the image has it; otherwise from
|
||||
# a kernel.org mirror: archive.ubuntu.com has been slow enough to add
|
||||
# minutes to every job.
|
||||
run: scripts/ci-sshd.sh
|
||||
|
||||
- name: Lint
|
||||
run: uv run ruff check .
|
||||
@@ -100,12 +98,10 @@ jobs:
|
||||
run: uv sync --all-packages
|
||||
|
||||
- name: Install sshd
|
||||
# The build VM is a throwaway sshd here (scripts/e2e.sh --local).
|
||||
run: |
|
||||
SUDO=$(command -v sudo || true)
|
||||
$SUDO apt-get update -qq
|
||||
$SUDO apt-get install -y -qq openssh-server openssh-client > /dev/null
|
||||
$SUDO mkdir -p /run/sshd
|
||||
# The build VM is a throwaway sshd here (scripts/e2e.sh --local). Skipped when the image has it; otherwise from
|
||||
# a kernel.org mirror: archive.ubuntu.com has been slow enough to add
|
||||
# minutes to every job.
|
||||
run: scripts/ci-sshd.sh
|
||||
|
||||
- name: End-to-end tests
|
||||
env:
|
||||
|
||||
@@ -48,11 +48,7 @@ jobs:
|
||||
run: uv sync --all-packages
|
||||
|
||||
- name: Install sshd
|
||||
run: |
|
||||
SUDO=$(command -v sudo || true)
|
||||
$SUDO apt-get update -qq
|
||||
$SUDO apt-get install -y -qq openssh-server openssh-client > /dev/null
|
||||
$SUDO mkdir -p /run/sshd
|
||||
run: scripts/ci-sshd.sh
|
||||
|
||||
- name: Lint
|
||||
run: uv run ruff check . && uv run ruff format --check .
|
||||
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
# The throwaway sshd the tests need (nisse_dev/testing.py), in a CI job.
|
||||
# Skipped when the job's image already has it. Otherwise apt fetches from a
|
||||
# kernel.org mirror rather than archive.ubuntu.com, which has been slow
|
||||
# enough (a few KB/s) to add minutes to every job.
|
||||
set -euo pipefail
|
||||
SUDO=$(command -v sudo || true)
|
||||
if command -v /usr/sbin/sshd > /dev/null && command -v ssh > /dev/null; then
|
||||
echo "sshd already installed"
|
||||
else
|
||||
MIRROR=${APT_MIRROR:-http://mirrors.edge.kernel.org/ubuntu}
|
||||
# Both layouts: deb822 (ubuntu.sources, 24.04+) and sources.list (older).
|
||||
for f in /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list; do
|
||||
[ -f "$f" ] && $SUDO sed -i -E \
|
||||
"s#https?://(archive|security)\.ubuntu\.com/ubuntu/?#$MIRROR/#g" "$f"
|
||||
done
|
||||
$SUDO apt-get update -qq
|
||||
$SUDO apt-get install -y -qq openssh-server openssh-client > /dev/null
|
||||
fi
|
||||
$SUDO mkdir -p /run/sshd
|
||||
Reference in new issue
Block a user