mirror of
https://oauth2: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@github.com/m1ngsama/TNT.git
synced 2026-06-26 05:34:39 +08:00
54 lines
1.2 KiB
YAML
54 lines
1.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies (Ubuntu)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y expect libssh-dev
|
|
|
|
- name: Install dependencies (macOS)
|
|
if: runner.os == 'macOS'
|
|
run: |
|
|
brew install libssh coreutils
|
|
|
|
- name: Build
|
|
run: make
|
|
|
|
- name: Build with AddressSanitizer
|
|
run: make asan
|
|
|
|
- name: Run comprehensive tests
|
|
run: |
|
|
make test
|
|
make connection-limit-test
|
|
cd tests
|
|
./test_security_features.sh
|
|
# Skipping anonymous access test in CI as it requires interactive pty handling which might be flaky
|
|
# ./test_anonymous_access.sh
|
|
|
|
- name: Run release preflight
|
|
run: make release-check
|
|
|
|
- name: Check for memory leaks
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
sudo apt-get install -y valgrind
|
|
timeout 10 valgrind --leak-check=full --error-exitcode=1 ./tnt &
|
|
sleep 5
|
|
pkill tnt || true
|