Skip to content

Commit 901ea3e

Browse files
authored
ci: add Arch Linux integration tests (#13)
1 parent 38d1703 commit 901ea3e

3 files changed

Lines changed: 40 additions & 4 deletions

File tree

.github/workflows/integration.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@ jobs:
2121
- distro: ubuntu
2222
image: ubuntu-24-04-x64
2323
setup_script: bin/ci/setup-ubuntu.sh
24-
# To add Arch (or other distros), add entries here:
25-
# - distro: arch
26-
# image: arch-linux-x64 # or a custom snapshot ID
27-
# setup_script: bin/ci/setup-arch.sh
24+
- distro: arch
25+
image: "217410218"
26+
setup_script: bin/ci/setup-arch.sh
2827

2928
name: ${{ matrix.distro }}
3029
timeout-minutes: 10

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ bin/ security & operations scripts
1717
ci/ CI integration scripts
1818
droplet.sh ephemeral DigitalOcean droplet lifecycle (create/destroy/ssh)
1919
setup-ubuntu.sh Ubuntu droplet: prereqs + setup + tests
20+
setup-arch.sh Arch Linux droplet: prereqs + setup + tests
2021
hooks/
2122
pre-commit blocks agent from modifying security files in git
2223
pi/

bin/ci/setup-arch.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/bin/bash
2+
# CI setup script for Arch Linux droplets.
3+
# Runs as root on a fresh droplet. Installs prereqs, uploads source,
4+
# runs setup.sh, and executes the test suite.
5+
#
6+
# Expects: /tmp/hornet-src.tar.gz already uploaded via scp.
7+
8+
set -euo pipefail
9+
10+
echo "=== [Arch] Installing prerequisites ==="
11+
pacman -Syu --noconfirm --needed git curl tmux iptables docker sudo 2>&1 | tail -10
12+
13+
echo "=== Preparing source ==="
14+
useradd -m -s /bin/bash hornet_admin
15+
mkdir -p /home/hornet_admin/hornet
16+
cd /home/hornet_admin/hornet
17+
tar xzf /tmp/hornet-src.tar.gz
18+
chown -R hornet_admin:hornet_admin /home/hornet_admin/
19+
sudo -u hornet_admin bash -c 'cd ~/hornet && git init -q && git config user.email "ci@test" && git config user.name "CI" && git add -A && git commit -q -m "init"'
20+
21+
echo "=== Running setup.sh ==="
22+
cd /
23+
bash /home/hornet_admin/hornet/setup.sh hornet_admin
24+
25+
echo "=== Installing test dependencies ==="
26+
export PATH="/home/hornet_agent/opt/node-v22.14.0-linux-x64/bin:$PATH"
27+
cd /home/hornet_admin/hornet
28+
npm install --ignore-scripts 2>&1 | tail -1
29+
cd slack-bridge && npm install 2>&1 | tail -1
30+
cd ..
31+
32+
echo "=== Running tests ==="
33+
bash bin/test.sh
34+
35+
echo ""
36+
echo "✅ All checks passed on Arch Linux"

0 commit comments

Comments
 (0)