mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 22:35:43 +08:00
937ef2efd4
We don't need to run any cachegrind benchmarks in benchmark-dev, since benchmark uses our new callgrind setup instead. Also removes prototyping filters that we no longer need from all builds.
186 lines
6.4 KiB
YAML
186 lines
6.4 KiB
YAML
name: benchmark-dev
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
paths-ignore:
|
|
- "docs/**"
|
|
- "papers/**"
|
|
- "rfcs/**"
|
|
- "*.md"
|
|
|
|
jobs:
|
|
windows:
|
|
name: windows-${{matrix.arch}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-latest]
|
|
arch: [Win32, x64]
|
|
bench:
|
|
- {
|
|
script: "run-benchmarks",
|
|
timeout: 12,
|
|
title: "Luau Benchmarks",
|
|
}
|
|
benchResultsRepo:
|
|
- { name: "luau-lang/benchmark-data", branch: "main" }
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout Luau repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Build Luau
|
|
shell: bash # necessary for fail-fast
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build . --target Luau.Repl.CLI --config Release
|
|
cmake --build . --target Luau.Analyze.CLI --config Release
|
|
|
|
- name: Move build files to root
|
|
run: |
|
|
move build/Release/* .
|
|
|
|
- uses: actions/setup-python@v3
|
|
with:
|
|
python-version: "3.9"
|
|
architecture: "x64"
|
|
|
|
- name: Install python dependencies
|
|
run: |
|
|
python -m pip install requests
|
|
python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
|
|
|
|
- name: Run benchmark
|
|
run: |
|
|
python bench/bench.py | tee ${{ matrix.bench.script }}-output.txt
|
|
|
|
- name: Push benchmark results
|
|
id: pushBenchmarkAttempt1
|
|
continue-on-error: true
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})"
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|
|
|
|
- name: Push benchmark results (Attempt 2)
|
|
id: pushBenchmarkAttempt2
|
|
continue-on-error: true
|
|
if: steps.pushBenchmarkAttempt1.outcome == 'failure'
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})"
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|
|
|
|
- name: Push benchmark results (Attempt 3)
|
|
id: pushBenchmarkAttempt3
|
|
continue-on-error: true
|
|
if: steps.pushBenchmarkAttempt2.outcome == 'failure'
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})"
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|
|
|
|
unix:
|
|
name: ${{matrix.os}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
bench:
|
|
- {
|
|
script: "run-benchmarks",
|
|
timeout: 12,
|
|
title: "Luau Benchmarks",
|
|
}
|
|
benchResultsRepo:
|
|
- { name: "luau-lang/benchmark-data", branch: "main" }
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout Luau repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Build Luau
|
|
run: make config=release luau luau-analyze
|
|
|
|
- uses: actions/setup-python@v3
|
|
with:
|
|
python-version: "3.9"
|
|
architecture: "x64"
|
|
|
|
- name: Install python dependencies
|
|
run: |
|
|
python -m pip install requests
|
|
python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
|
|
|
|
- name: Run benchmark
|
|
run: |
|
|
python bench/bench.py | tee ${{ matrix.bench.script }}-output.txt
|
|
|
|
- name: Push benchmark results
|
|
id: pushBenchmarkAttempt1
|
|
continue-on-error: true
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: ${{ matrix.bench.title }}
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|
|
|
|
- name: Push benchmark results (Attempt 2)
|
|
id: pushBenchmarkAttempt2
|
|
continue-on-error: true
|
|
if: steps.pushBenchmarkAttempt1.outcome == 'failure'
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: ${{ matrix.bench.title }}
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|
|
|
|
- name: Push benchmark results (Attempt 3)
|
|
id: pushBenchmarkAttempt3
|
|
continue-on-error: true
|
|
if: steps.pushBenchmarkAttempt2.outcome == 'failure'
|
|
uses: ./.github/workflows/push-results
|
|
with:
|
|
repository: ${{ matrix.benchResultsRepo.name }}
|
|
branch: ${{ matrix.benchResultsRepo.branch }}
|
|
token: ${{ secrets.BENCH_GITHUB_TOKEN }}
|
|
path: "./gh-pages"
|
|
bench_name: ${{ matrix.bench.title }}
|
|
bench_tool: "benchmarkluau"
|
|
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt"
|
|
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json"
|