A lexicon-driven AppView for ATProto.
0

Configure Feed

Select the types of activity you want to include in your feed.

ci: prevent tests from hitting ci time limits

Signed-off-by: Trezy <tre@trezy.com>

+37 -3
+1
.dockerignore
··· 4 4 .github/ 5 5 .claude/ 6 6 .env 7 + .builder-override/ 7 8 docker-compose*.yml
+28 -3
.github/workflows/ci.yml
··· 87 87 needs: changes 88 88 if: always() && (needs.changes.outputs.server == 'true' || (github.event_name == 'workflow_dispatch' && inputs.server)) 89 89 runs-on: depot-ubuntu-24.04 90 + timeout-minutes: 15 90 91 steps: 91 92 - name: Checkout repository 92 93 uses: actions/checkout@v6 ··· 109 110 needs: changes 110 111 if: always() && (needs.changes.outputs.server == 'true' || (github.event_name == 'workflow_dispatch' && inputs.server)) 111 112 runs-on: depot-ubuntu-24.04 113 + timeout-minutes: 15 112 114 services: 113 115 postgres: 114 116 image: postgres:16-alpine ··· 211 213 working-directory: web 212 214 run: npx playwright install chromium --with-deps 213 215 216 + - name: Cache cargo 217 + uses: actions/cache@v5 218 + with: 219 + path: | 220 + ~/.cargo/registry 221 + ~/.cargo/git 222 + key: cargo-release-amd64-${{ hashFiles('Cargo.lock') }} 223 + restore-keys: | 224 + cargo-release-amd64- 225 + 226 + - name: Build server binary 227 + run: | 228 + docker run --rm \ 229 + -v "$PWD:/app" \ 230 + -v "$HOME/.cargo/registry:/usr/local/cargo/registry" \ 231 + -v "$HOME/.cargo/git:/usr/local/cargo/git" \ 232 + -w /app \ 233 + -e SQLX_OFFLINE=true \ 234 + rust:1.93-bookworm \ 235 + cargo build --release 236 + mkdir -p .builder-override/app/target/release 237 + cp target/release/happyview .builder-override/app/target/release/happyview 238 + 214 239 - name: Log in to ATCR 215 240 run: echo "${{ secrets.ATCR_PASSWORD }}" | docker login atcr.io -u "${{ secrets.ATCR_USERNAME }}" --password-stdin 216 241 217 242 - name: Start E2E services 218 - run: docker compose -f docker-compose.e2e.yml up -d --build --wait 243 + run: docker compose -f docker-compose.e2e.yml -f docker-compose.e2e.ci.yml up -d --build --wait 219 244 timeout-minutes: 10 220 245 221 246 - name: Run Playwright tests ··· 226 251 227 252 - name: Dump container logs 228 253 if: failure() 229 - run: docker compose -f docker-compose.e2e.yml logs 254 + run: docker compose -f docker-compose.e2e.yml -f docker-compose.e2e.ci.yml logs 230 255 231 256 - name: Upload Playwright report 232 257 if: failure() ··· 238 263 239 264 - name: Stop E2E services 240 265 if: always() 241 - run: docker compose -f docker-compose.e2e.yml down -v 266 + run: docker compose -f docker-compose.e2e.yml -f docker-compose.e2e.ci.yml down -v 242 267 243 268 # --------------------------------------------------------------------------- 244 269 # PR builds — compile + Docker on every PR push so reviewers can test
+5
docker-compose.e2e.ci.yml
··· 1 + services: 2 + happyview: 3 + build: 4 + additional_contexts: 5 + builder: .builder-override
+3
web/playwright.config.ts
··· 28 28 testMatch: [ 29 29 "service-identity-settings.spec.ts", 30 30 "lexicon-services.spec.ts", 31 + "lexicon-delete.spec.ts", 32 + "script-delete.spec.ts", 33 + "record-delete.spec.ts", 31 34 "proxy-config.spec.ts", 32 35 ], 33 36 dependencies: ["setup"],