name: bench on: pull_request: paths: - "libs/**" permissions: contents: read jobs: benchmark: runs-on: ubuntu-latest defaults: run: working-directory: libs/langgraph steps: - uses: actions/checkout@v6 - id: files name: Get changed files uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0 with: format: json - name: Set up Python 3.11 uses: ./.github/actions/uv_setup with: python-version: "3.11" cache-suffix: "bench" working-directory: libs/langgraph - name: Install dependencies run: uv sync --group test - name: Download baseline uses: actions/cache/restore@v5 with: key: ${{ runner.os }}-benchmark-baseline restore-keys: | ${{ runner.os }}-benchmark-baseline- fail-on-cache-miss: true path: | libs/langgraph/out/benchmark-baseline.json - name: Run benchmarks id: benchmark run: | { echo 'OUTPUT<> "$GITHUB_OUTPUT" - name: Compare benchmarks id: compare run: | { echo 'OUTPUT<> "$GITHUB_OUTPUT" - name: Annotation uses: actions/github-script@v8 with: script: | const file = JSON.parse(`${{ steps.files.outputs.added_modified_renamed }}`)[0] core.notice(`${{ steps.benchmark.outputs.OUTPUT }}`, { title: 'Benchmark results', file, }) core.notice(`${{ steps.compare.outputs.OUTPUT }}`, { title: 'Comparison against main', file, })