Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 0 additions & 83 deletions .github/workflows/bench-dispatch.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/commit-metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ jobs:
with:
fetch-depth: 2

# v4 (Postgres) ingest -- REQUIRED (see bench.yml rationale). Empty records:
# v4 (Postgres) ingest -- REQUIRED (see develop-bench.yml rationale). Empty records:
# post-ingest.py --postgres upserts the commit row only. Gated on the
# ingest-role ARN var (the assume-role input that MUST exist for OIDC to
# succeed).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably need a action/bench-gpu-compress label for GPU compress?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah I am going to run this once this merges:

gh label edit "action/benchmark-gpu-compress" --name "action/bench-gpu-compress" \
  --description "Run only the GPU compression benchmark on this PR"
gh label delete action/benchmark --yes
gh label delete action/benchmark-sql --yes
gh label delete action/benchmark-sql-full --yes

#
# `sync: false` -- the ingest runs `uv run --no-project --with`, which needs only
# the uv binary, never the synced workspace (see bench.yml rationale).
# the uv binary, never the synced workspace (see develop-bench.yml rationale).
- name: Install uv for v4 ingest
if: vars.GH_BENCH_INGEST_ROLE_ARN != ''
uses: spiraldb/actions/.github/actions/setup-uv@a746510eafaa926484c354541cfc49b2ec06cc63 # 0.18.6
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Runs after every commit to `develop` (or in other words, _after_ every pull request merges).

name: Benchmarks
name: Develop Benchmarks

on:
push:
Expand Down Expand Up @@ -188,7 +188,7 @@ jobs:
deduplication-key: ci-bench-${{ matrix.benchmark.id }}-failure

sql:
uses: ./.github/workflows/sql-benchmarks.yml
uses: ./.github/workflows/sql-bench-matrix.yml
secrets: inherit
with:
mode: "develop"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ permissions:

jobs:
sql:
uses: ./.github/workflows/sql-benchmarks.yml
uses: ./.github/workflows/sql-bench-matrix.yml
secrets: inherit
with:
mode: "develop"
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/pr-bench-compress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Runs the compression benchmark for a pull request.

name: PR Compression Benchmark

on:
workflow_call: { }
workflow_dispatch: { }

permissions:
contents: read
pull-requests: write # for commenting on PRs
id-token: write # enables AWS-GitHub OIDC

jobs:
bench:
uses: ./.github/workflows/pr-bench-runner.yml
secrets: inherit
with:
benchmark_id: compress-bench
benchmark_name: Compression
153 changes: 153 additions & 0 deletions .github/workflows/pr-bench-dispatch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# Dispatches benchmark workflows when benchmark labels are added to pull requests.
# This is a separate workflow so that non-benchmark label events don't create
# phantom check suites that obscure in-progress benchmark runs on the PR.

name: PR Benchmark Dispatch
run-name: >-
PR #${{ github.event.pull_request.number }} benchmark:
${{ github.event.label.name }}

on:
pull_request:
types: [labeled]
branches: ["develop"]

permissions:
actions: write
contents: read
pull-requests: write # for label removal and PR comments
id-token: write # enables AWS-GitHub OIDC

jobs:
remove-all-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-all'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-all
fail_on_error: true

all-random-access-bench:
needs: remove-all-label
uses: ./.github/workflows/pr-bench-random-access.yml
secrets: inherit

all-compression-bench:
needs: remove-all-label
uses: ./.github/workflows/pr-bench-compress.yml
secrets: inherit

all-string-bench:
needs: remove-all-label
uses: ./.github/workflows/pr-bench-string.yml
secrets: inherit

all-sql-bench:
needs: remove-all-label
uses: ./.github/workflows/pr-bench-sql.yml
secrets: inherit
with:
matrix_preset: "pr-all"

remove-random-access-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-random-access'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-random-access
fail_on_error: true

random-access-bench:
needs: remove-random-access-label
uses: ./.github/workflows/pr-bench-random-access.yml
secrets: inherit

remove-compress-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-compress'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-compress
fail_on_error: true

compression-bench:
needs: remove-compress-label
uses: ./.github/workflows/pr-bench-compress.yml
secrets: inherit

remove-string-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-string'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-string
fail_on_error: true

string-bench:
needs: remove-string-label
uses: ./.github/workflows/pr-bench-string.yml
secrets: inherit

remove-gpu-compress-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-gpu-compress'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-gpu-compress
fail_on_error: true

gpu-compress-bench:
needs: remove-gpu-compress-label
uses: ./.github/workflows/pr-bench-gpu-compress.yml
secrets: inherit

remove-sql-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-sql'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-sql
fail_on_error: true

sql-bench:
needs: remove-sql-label
uses: ./.github/workflows/pr-bench-sql.yml
secrets: inherit
with:
matrix_preset: "pr"

remove-sql-compact-label:
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.event.label.name == 'action/bench-sql-compact'
steps:
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 # v1
if: github.event.pull_request.head.repo.full_name == 'vortex-data/vortex'
with:
labels: action/bench-sql-compact
fail_on_error: true

sql-compact-bench:
needs: remove-sql-compact-label
uses: ./.github/workflows/pr-bench-sql.yml
secrets: inherit
with:
matrix_preset: "pr-compact"
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Runs the GPU-enabled compression decompression benchmarks for a pull request.
# Called from bench-dispatch.yml when the `action/benchmark-gpu-compress` label is added.
# Called from pr-bench-dispatch.yml when the `action/bench-gpu-compress` label is added.

name: GPU Compression Benchmarks
name: PR GPU Compression Benchmark

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-gpu-compress
cancel-in-progress: false

on:
Expand Down Expand Up @@ -71,13 +71,13 @@ jobs:
} > comment.md
cat comment.md >> "$GITHUB_STEP_SUMMARY"
- name: Comment PR
if: github.event.pull_request.head.repo.fork == false
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this is a qol change

uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3
with:
file-path: comment.md
comment-tag: bench-pr-comment-gpu-compress
- name: Comment PR on failure
if: failure() && github.event.pull_request.head.repo.fork == false
if: failure() && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false
uses: thollander/actions-comment-pull-request@24bffb9b452ba05a4f3f77933840a6a841d1b32b # v3
with:
message: |
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/pr-bench-random-access.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Runs the random-access benchmark for a pull request.

name: PR Random Access Benchmark

on:
workflow_call: { }
workflow_dispatch: { }

permissions:
contents: read
pull-requests: write # for commenting on PRs
id-token: write # enables AWS-GitHub OIDC

jobs:
bench:
uses: ./.github/workflows/pr-bench-runner.yml
secrets: inherit
with:
benchmark_id: random-access-bench
benchmark_name: Random Access
with_lance: true
Loading
Loading