name: Weekly Drills on: schedule: - cron: "0 3 * * 0" workflow_dispatch: {} permissions: contents: read id-token: write jobs: backup-restore-drill: name: Backup & Restore Drill runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install --frozen-lockfile - name: Run backup drill run: bun run drill:backup-restore env: DATABASE_URL: ${{ vars.DRILL_DATABASE_URL || 'postgresql://test:test@localhost:5432/test' }} BACKUP_DESTINATION: "file:./test-results/drills" - name: Upload drill artifacts if: always() uses: actions/upload-artifact@v4 with: name: backup-drill-report path: test-results/drills/ retention-days: 30 redis-outage-drill: name: Redis Outage Drill runs-on: ubuntu-latest timeout-minutes: 15 services: postgres: image: postgres:16-alpine ports: - 5432:5432 steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install --frozen-lockfile - name: Run Redis drill run: bun run drill:redis env: DATABASE_URL: postgresql://test:test@localhost:5432/test REDIS_URL: redis://localhost:6379 postgres-reconnect-drill: name: PostgreSQL Reconnect Drill runs-on: ubuntu-latest timeout-minutes: 15 services: postgres: image: postgres:16-alpine ports: - 5432:5432 steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install --frozen-lockfile - name: Run Postgres drill run: bun run drill:postgres env: DATABASE_URL: postgresql://test:test@localhost:5432/test