refactor: optimize rendering, log loading, and restructure tests #11
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 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 | |
| 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: 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 |