Address code review feedback: improve error handling and security #188
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, pull_request] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node: [20, 22] | |
| firebird-version: ['v3'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 10 | |
| - name: Setup FirebirdSQL container | |
| run: | | |
| # Create data directory | |
| sudo mkdir -p /firebird/data | |
| sudo chmod 755 /firebird/data | |
| # Start Firebird container | |
| docker run -d \ | |
| --name firebird \ | |
| -e FIREBIRD_ROOT_PASSWORD="masterkey" \ | |
| -e FIREBIRD_CONF_WireCrypt="Enabled" \ | |
| -e FIREBIRD_CONF_AuthServer="Legacy_Auth, Srp, Win_Sspi" \ | |
| -p 3050:3050 \ | |
| -v /firebird/data:/firebird/data \ | |
| firebirdsql/firebird:3 | |
| # Wait for Firebird to be ready | |
| MAX_RETRIES=30 | |
| RETRY_INTERVAL=2 | |
| echo "Waiting for Firebird to start..." | |
| FIREBIRD_READY=false | |
| for i in $(seq 1 $MAX_RETRIES); do | |
| if docker exec firebird /opt/firebird/bin/isql -user SYSDBA -password masterkey -z 2>&1 | grep -q "ISQL Version"; then | |
| echo "Firebird is ready!" | |
| FIREBIRD_READY=true | |
| break | |
| fi | |
| echo "Waiting... ($i/$MAX_RETRIES)" | |
| sleep $RETRY_INTERVAL | |
| done | |
| if [ "$FIREBIRD_READY" = false ]; then | |
| echo "ERROR: Firebird failed to start within the timeout period" | |
| docker ps -a | |
| docker logs firebird | |
| exit 1 | |
| fi | |
| # Verify Firebird is running | |
| docker ps -a | |
| docker logs firebird | |
| - name: Use Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - name: Build | |
| shell: bash | |
| run: | | |
| npm ci | |
| - name: Test (Linux) | |
| run: | | |
| export FIREBIRD_DATA=/firebird/data | |
| npx nyc npm test |