# Tests every push. Voyager 1 (this branch) is retired since 2026-10-11: its # database was deleted on 2026-10-09, and a push to master no longer deploys. # Voyager 2 (branch rebuild) has its own workflow and deploy # (deploy/README.md there); homelab's ~/bin/deploy-usenet-indexer refuses # voyager 1 deploys too. name: Test and deploy on: push: workflow_dispatch: jobs: test: runs-on: ubuntu-latest services: postgres: image: postgres:17 env: POSTGRES_USER: indexer POSTGRES_PASSWORD: indexer POSTGRES_DB: usenet_indexer options: >- --health-cmd "pg_isready -U indexer -d usenet_indexer" --health-interval 5s --health-retries 20 redis: image: redis:8 env: TZ: UTC PORT: 3333 HOST: 0.0.0.0 NODE_ENV: test LOG_LEVEL: warn APP_KEY: ci-only-app-key-not-a-secret-000000 APP_URL: http://localhost:3333 SESSION_DRIVER: memory DB_CONNECTION: pg DB_HOST: postgres DB_PORT: 5432 DB_USER: indexer DB_PASSWORD: indexer DB_DATABASE: usenet_indexer REDIS_HOST: redis REDIS_PORT: 6379 # Tests never connect to a news server. NNTP_HOST: localhost NNTP_PORT: 563 NNTP_USER: ci NNTP_PASSWORD: ci NNTP_SECURE: true steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: npm - run: npm ci - name: Type check run: npx tsc --noEmit - name: Migrate run: node ace migration:run --force - name: Test run: node ace test