mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-27 19:23:40 +00:00
Add tests/test_deb_build.sh with four phases: 1. Build .deb packages via dpkg-buildpackage 2. Verify all three packages contain expected files (binaries, man pages, shared library, headers, pkg-config) 3. Install packages and resolve dependencies 4. Smoke-test installed binaries, ldconfig, and headers Add a Linux-only CI step in build.yml to run the test. Statically link the bundled submodule libraries (libcork, libipset, libbloom) into all targets instead of building them as shared libs. These are vendored code built from git submodules, not system libraries, so static linking is correct and eliminates dpkg-shlibdeps warnings about missing .so files. Pass -DWITH_STATIC=OFF in debian/rules since debian build-depends only provide shared library dev packages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies (Linux)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libpcre2-dev libmbedtls-dev libsodium-dev libev-dev libc-ares-dev
|
|
|
|
- name: Install dependencies (macOS)
|
|
if: runner.os == 'macOS'
|
|
run: brew install mbedtls@3 libsodium libev c-ares pcre2
|
|
|
|
- name: Build
|
|
run: |
|
|
mkdir -p build && cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_STATIC=OFF
|
|
make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu)
|
|
|
|
- name: Unit tests
|
|
run: |
|
|
cd build
|
|
ctest --output-on-failure
|
|
|
|
- name: ss-setup TUI tests
|
|
run: bash tests/test_ss_setup.sh
|
|
|
|
- name: Stress test
|
|
run: |
|
|
python3 tests/stress_test.py --bin build/shared/bin/ --size 10
|
|
|
|
- name: ss-redir transparent proxy test (QEMU)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get install -y qemu-system-x86
|
|
bash tests/test_redir_qemu.sh build/shared/bin/
|
|
timeout-minutes: 8
|
|
|
|
- name: Debian package build test
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get install -y --no-install-recommends \
|
|
build-essential debhelper dpkg-dev fakeroot asciidoc-base xmlto pkg-config
|
|
bash tests/test_deb_build.sh
|
|
timeout-minutes: 10
|