# Gitea Actions workflow for running Magnitude tests name: Magnitude Tests on: push: branches: [main, development] pull_request: branches: [main, development] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install pnpm run: npm install -g pnpm - name: Install dependencies run: pnpm install --frozen-lockfile - name: Start SurrealDB run: | docker run -d \ --name surrealdb \ -p 8000:8000 \ -e SURREAL_USER=${{ secrets.SURREALDB_USER }} \ -e SURREAL_PASS=${{ secrets.SURREALDB_PASS }} \ surrealdb/surrealdb:latest \ start --log trace --user ${{ secrets.SURREALDB_USER }} --pass ${{ secrets.SURREALDB_PASS }} memory - name: Wait for SurrealDB run: sleep 5 - name: Start Next.js dev server run: pnpm dev & env: SURREALDB_URL: ws://localhost:8000/rpc SURREALDB_USER: ${{ secrets.SURREALDB_USER }} SURREALDB_PASS: ${{ secrets.SURREALDB_PASS }} SURREALDB_NS: ${{ secrets.SURREALDB_NS }} SURREALDB_DB: ${{ secrets.SURREALDB_DB }} ATPROTO_CLIENT_ID: ${{ secrets.ATPROTO_CLIENT_ID }} ATPROTO_REDIRECT_URI: ${{ secrets.ATPROTO_REDIRECT_URI }} GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }} SURREAL_JWT_SECRET: ${{ secrets.SURREAL_JWT_SECRET }} TEST_BLUESKY_HANDLE: ${{ secrets.TEST_BLUESKY_HANDLE }} TEST_BLUESKY_PASSWORD: ${{ secrets.TEST_BLUESKY_PASSWORD }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - name: Wait for Next.js server run: npx wait-on http://localhost:3000 --timeout 120000 - name: Run Magnitude tests run: npx magnitude env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} TEST_BLUESKY_HANDLE: ${{ secrets.TEST_BLUESKY_HANDLE }} TEST_BLUESKY_PASSWORD: ${{ secrets.TEST_BLUESKY_PASSWORD }} - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: magnitude-results path: test-results/ retention-days: 30