name: Run Tests permissions: contents: read on: pull_request: branches: - main - dev jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: node-version: '22' - name: Copy config file run: cp config/config.example.yml config/config.yml - name: Install dependencies run: npm ci - name: Create database index.ts run: npm run set:sqlite - name: Create build file run: npm run set:oss - name: Generate database migrations run: npm run db:sqlite:generate - name: Apply database migrations run: npm run db:sqlite:push - name: Test with tsc run: npx tsc --noEmit - name: Start app in background run: nohup npm run dev & - name: Wait for app availability run: | for i in {1..5}; do if curl --silent --fail http://localhost:3002/auth/login; then echo "App is up" exit 0 fi echo "Waiting for the app... attempt $i" sleep 5 done echo "App failed to start" exit 1 - name: Build Docker image sqlite run: make build-sqlite - name: Build Docker image pg run: make build-pg