Skip to content

feat(replay-vision): API validation + lens_result row column #52477

feat(replay-vision): API validation + lens_result row column

feat(replay-vision): API validation + lens_result row column #52477

name: OAuth Proxy CI
on:
push:
branches: [master]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
pull-requests: read
jobs:
changes:
runs-on: ubuntu-24.04
timeout-minutes: 5
name: Determine need to run oauth-proxy checks
outputs:
oauth-proxy: ${{ steps.filter.outputs.oauth-proxy || 'true' }}
steps:
- uses: actions/checkout@v6
- uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
id: app-token
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
with:
client-id: ${{ secrets.GH_APP_POSTHOG_PATHS_FILTER_APP_ID }}
private-key: ${{ secrets.GH_APP_POSTHOG_PATHS_FILTER_PRIVATE_KEY }}
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
if: github.event_name != 'push'
with:
token: ${{ steps.app-token.outputs.token || github.token }}
filters: |
oauth-proxy:
- 'services/oauth-proxy/**'
- '.github/workflows/ci-oauth-proxy.yml'
build-and-test:
name: Build & Test
runs-on: ubuntu-latest
timeout-minutes: 10
needs: changes
if: needs.changes.outputs.oauth-proxy == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
- name: Fix node-gyp permissions
run: chmod +x ~/setup-pnpm/node_modules/.pnpm/pnpm@*/node_modules/pnpm/dist/node_modules/node-gyp/gyp/gyp_main.py
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
node-version-file: .nvmrc
cache: 'pnpm'
- name: Install dependencies
run: pnpm --filter=@posthog/auth-proxy... install --frozen-lockfile
- name: Type check
run: cd services/oauth-proxy && pnpm typecheck
- name: Run tests
run: cd services/oauth-proxy && pnpm test
oauth_proxy_tests:
needs: [changes, build-and-test]
name: OAuth Proxy Tests Pass
runs-on: ubuntu-latest
timeout-minutes: 5
if: always()
steps:
- name: Check all oauth-proxy jobs
run: |
if [[ "${{ needs.changes.result }}" == "failure" ]]; then
echo "Change detection job failed."
exit 1
fi
if [[ "${{ needs.changes.outputs.oauth-proxy }}" != "true" ]]; then
echo "OAuth proxy checks were skipped (no relevant changes)."
exit 0
fi
if [[ "${{ needs.build-and-test.result }}" != "success" && "${{ needs.build-and-test.result }}" != "skipped" ]]; then
echo "OAuth proxy build/test failed."
exit 1
fi
echo "All oauth-proxy checks passed."