feat(replay-vision): API validation + lens_result row column #145205
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Turbo CI | |
| on: | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| turbo-affected-4: | |
| timeout-minutes: 30 | |
| name: Turbo Affected | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| # os: [depot-ubuntu-22.04, depot-ubuntu-22.04-4] | |
| os: [depot-ubuntu-22.04-4] | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Check out code | |
| uses: actions/checkout@v6 | |
| with: | |
| # Just fetch the current commit/PR head | |
| fetch-depth: 1 | |
| - name: Detect architecture | |
| if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }} | |
| run: | | |
| ARCH=$(uname -m) | |
| echo "ARCH=$ARCH" >> $GITHUB_ENV | |
| # Conditionally fetch the base branch so Turborepo can compare against it | |
| - name: Fetch base branch | |
| run: | | |
| if [ "${{ github.event_name }}" = "pull_request" ]; then | |
| # Try to fetch the base branch; fall back to master for Graphite virtual branches | |
| # (e.g. graphite-base/49227) which don't exist as real remote refs | |
| if git fetch origin refs/heads/${GITHUB_BASE_REF}:refs/heads/${GITHUB_BASE_REF} --depth=1 2>/dev/null; then | |
| echo "TURBO_SCM_BASE=${GITHUB_BASE_REF}" >> $GITHUB_ENV | |
| else | |
| echo "::warning::Base branch ${GITHUB_BASE_REF} not found as remote ref, falling back to master" | |
| git fetch origin refs/heads/master:refs/heads/master --depth=1 | |
| echo "TURBO_SCM_BASE=master" >> $GITHUB_ENV | |
| fi | |
| else | |
| git fetch origin refs/heads/master:refs/heads/master --depth=1 | |
| echo "TURBO_SCM_BASE=master" >> $GITHUB_ENV | |
| fi | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version-file: 'pyproject.toml' | |
| - name: Install uv | |
| id: setup-uv | |
| uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0 | |
| with: | |
| version: '0.10.2' # pinned: unpinned setup-uv calls GH API on every job, exhausts rate limit | |
| enable-cache: true | |
| cache-dependency-glob: uv.lock | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: 'pnpm' | |
| - name: Run Python and Node setup in parallel | |
| env: | |
| UV_CACHE_HIT: ${{ steps.setup-uv.outputs.cache-hit }} | |
| run: | | |
| set -e | |
| set -m | |
| ( | |
| if [ "$UV_CACHE_HIT" != "true" ]; then | |
| echo ">>> [Python] Installing SAML (python3-saml) dependencies..." | |
| sudo apt-get update | |
| sudo apt-get install -y libxml2-dev libxmlsec1 libxmlsec1-dev libxmlsec1-openssl | |
| fi | |
| echo ">>> [Python] Installing dependencies..." | |
| UV_PROJECT_ENVIRONMENT=$pythonLocation uv sync --frozen --dev | |
| ) & | |
| PY_PID=$! | |
| ( | |
| echo ">>> [Node] Installing dependencies..." | |
| pnpm install --frozen-lockfile --filter=@posthog/root | |
| ) & | |
| NODE_PID=$! | |
| wait -n || (echo ">>> One of the parallel tasks failed, killing the other..." && kill $PY_PID $NODE_PID 2>/dev/null && exit 1) | |
| wait -n || (echo ">>> The second parallel task failed" && exit 1) | |
| echo ">>> Both parallel tasks completed successfully!" | |
| - name: Turbo Affected | |
| run: | | |
| bin/turbo build --affected --dry-run | |
| env: | |
| NODE_OPTIONS: --max-old-space-size=8192 | |
| TURBO_SCM_BASE: ${{ env.TURBO_SCM_BASE }} |