name: Run Tests permissions: contents: read on: pull_request: branches: - main - dev jobs: test: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Install Node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.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 build-sqlite: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Copy config file run: cp config/config.example.yml config/config.yml - name: Build Docker image sqlite run: make dev-build-sqlite build-postgres: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Copy config file run: cp config/config.example.yml config/config.yml - name: Build Docker image pg run: make dev-build-pg