Repository navigation
86 lines (77 loc) · 3.32 KB
/
Copy pathbenchmark-linux.yml
File metadata and controls
86 lines (77 loc) · 3.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
name: Benchmark Linux x86_64
on:
workflow_dispatch:
inputs:
profile:
description: Benchmark lane
required: true
type: choice
options: [fair, claims, prompt]
release_id:
description: Numeric draft or published Release ID containing the fixed dataset
required: true
default: "353517336"
type: string
permissions:
contents: read
jobs:
benchmark:
permissions:
contents: write # Draft Release assets require write-scoped repository access.
runs-on: ubuntu-24.04
timeout-minutes: 360
steps:
- name: Check out public commit
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@ef8a148080ab6020fd15196c2084a2eea5ff2d25 # v22
- name: Download fixed dataset from Release
env:
GH_TOKEN: ${{ github.token }}
run: |
mkdir -p incoming .data/github-stars-2026-07-03
asset_id=$(gh api \
"repos/$GITHUB_REPOSITORY/releases/${{ inputs.release_id }}" \
--jq '.assets[] | select(.name == "github-stars-2026-07-03.csv.zst") | .id')
test -n "$asset_id"
gh api -H "Accept: application/octet-stream" \
"repos/$GITHUB_REPOSITORY/releases/assets/$asset_id" \
> incoming/github-stars-2026-07-03.csv.zst
echo "7ec5d63fef91c2655fc5ff3ee89d719689ee0c33081f02669224be96e1d2b9c2 incoming/github-stars-2026-07-03.csv.zst" \
| sha256sum -c -
cp incoming/github-stars-2026-07-03.csv.zst \
.data/github-stars-2026-07-03/github-stars-2026-07-03.csv.zst
nix develop --command zstd -d \
incoming/github-stars-2026-07-03.csv.zst \
-o .data/github-stars-2026-07-03/source.csv
echo "39cc70109d9dddf947257584e15f2f9a6bc97dcdf0a7bf939c26cccbcda0e22e .data/github-stars-2026-07-03/source.csv" \
| sha256sum -c -
- name: Synchronize frozen Python environment
run: nix develop --command uv sync --frozen
- name: Install isolated TsFile claim dependencies
if: inputs.profile == 'claims'
run: |
nix develop --command uv pip install --python .venv/bin/python \
pytz==2026.2 tzdata==2026.3
nix develop --command uv pip install --python .venv/bin/python --no-deps \
pandas==2.2.3 tsfile==2.3.1
- name: Run selected benchmark lane
id: benchmark
run: |
result=$(nix develop --command .venv/bin/format-bench run \
--profile "${{ inputs.profile }}" \
--dataset github-stars-2026-07-03)
run_dir=$(dirname "$result")
nix develop --command .venv/bin/format-bench report --run-dir "$run_dir"
archive=$(nix develop --command .venv/bin/format-bench package \
--run-dir "$run_dir" \
--platform linux-x86_64)
echo "archive=$archive" >> "$GITHUB_OUTPUT"
- name: Upload Linux evidence
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: data-format-lab-${{ inputs.profile }}-linux-x86_64
path: |
${{ steps.benchmark.outputs.archive }}
${{ steps.benchmark.outputs.archive }}.sha256
if-no-files-found: error