This PR contains the following updates: | Package | Type | Update | Change | Pending | |---|---|---|---|---| | [EnricoMi/publish-unit-test-result-action](https://redirect.github.com/EnricoMi/publish-unit-test-result-action) | action | minor | `v2.23.0` → `v2.24.0` | | | [actions/attest-build-provenance](https://redirect.github.com/actions/attest-build-provenance) | action | patch | `v4.1.0` → `v4.1.1` | | | [actions/checkout](https://redirect.github.com/actions/checkout) | action | patch | `v6.0.2` → `v6.0.3` | | | [actions/checkout](https://redirect.github.com/actions/checkout) | action | patch | `v6.0.1` → `v6.0.3` | | | [actions/create-github-app-token](https://redirect.github.com/actions/create-github-app-token) | action | minor | `v3.1.1` → `v3.2.0` | | | [actions/labeler](https://redirect.github.com/actions/labeler) | action | minor | `v6.0.1` → `v6.2.0` | | | [actions/setup-node](https://redirect.github.com/actions/setup-node) | action | minor | `v6.3.0` → `v6.5.0` | | | [actions/setup-python](https://redirect.github.com/actions/setup-python) | action | minor | `v6.2.0` → `v6.3.0` | | | [actions/upload-artifact](https://redirect.github.com/actions/upload-artifact) | action | patch | `v7.0.0` → `v7.0.1` | | | [aminya/setup-cpp](https://redirect.github.com/aminya/setup-cpp) | action | patch | `v1.8.0` → `v1.8.1` | | | [docker/login-action](https://redirect.github.com/docker/login-action) | action | minor | `v4.1.0` → `v4.4.0` | | | ghcr.io/llvm/amd64/ci-ubuntu-24.04-github-automation | container | digest | `82b5304` → `f419363` | | | ghcr.io/llvm/ci-ubuntu-24.04 | container | digest | `cc4fd65` → `26c16c2` | | | ghcr.io/llvm/ci-ubuntu-24.04-abi-tests | container | digest | `cb3aea3` → `a948062` | | | ghcr.io/llvm/ci-ubuntu-24.04-lint | container | digest | `91665a4` → `416874e` | | | ghcr.io/llvm/libc-ubuntu-24.04 | container | digest | `a902fb5` → `b9c8ea7` | | | [github/codeql-action](https://redirect.github.com/github/codeql-action) | action | minor | `v4.35.2` → `v4.37.0` | `v4.37.1` | | [hendrikmuhs/ccache-action](https://redirect.github.com/hendrikmuhs/ccache-action) | action | patch | `v1.2.22` → `v1.2.23` | | | [zizmorcore/zizmor-action](https://redirect.github.com/zizmorcore/zizmor-action) | action | minor | `v0.5.3` → `v0.6.0` | | (cherry picked from commit 24942433bc8a71b8aa459f802a0962089bb4dd22)
111 lines
3.7 KiB
YAML
111 lines
3.7 KiB
YAML
# This file defines a workflow that runs the libc++ benchmarks at the given commit.
|
|
# This workflow is intended to be triggered manually or via the Github API. As such,
|
|
# it requires several inputs that allow customizing its behavior.
|
|
|
|
name: Benchmark libc++ commit
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
# TODO: Support dispatching only to selected configurations.
|
|
workflow_dispatch:
|
|
inputs:
|
|
commit:
|
|
description: 'The libc++ commit to benchmark'
|
|
required: true
|
|
type: string
|
|
benchmark-suite-version:
|
|
description: 'The version of the benchmark suite to use (a LLVM monorepo SHA)'
|
|
required: false
|
|
type: string
|
|
default: 0eefb2682bf8c04954c46e91916b5164d8424702
|
|
filter:
|
|
description: 'An optional filter to determine which benchmarks to run'
|
|
required: false
|
|
type: string
|
|
submit-lnt:
|
|
description: 'Whether to submit the results to LNT -- dry-run unless opted in'
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
lnt-url:
|
|
description: 'The URL of the LNT instance to submit to'
|
|
required: false
|
|
type: string
|
|
default: http://lnt.llvm.org
|
|
|
|
jobs:
|
|
run-benchmarks:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- lnt-machine: macos-26.5-arm64
|
|
runner: ["self-hosted", "macOS", "ARM64", "26", "26.5"]
|
|
cxx: clang++
|
|
install-python: false
|
|
install-macos-dependencies: true
|
|
- lnt-machine: linux-x86_64
|
|
runner: llvm-premerge-libcxx-runners
|
|
cxx: clang++-22
|
|
install-python: true
|
|
install-macos-dependencies: false
|
|
fail-fast: false
|
|
runs-on: ${{ matrix.runner }}
|
|
steps:
|
|
- name: Checkout the LLVM monorepo
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
persist-credentials: false
|
|
# We benchmark arbitrary historical commits, which requires the full history to be available.
|
|
fetch-depth: 0
|
|
fetch-tags: true
|
|
|
|
- name: Install Python
|
|
if: ${{ matrix.install-python }}
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: '3.14'
|
|
|
|
- name: Install Ninja and CMake
|
|
if: ${{ matrix.install-macos-dependencies }}
|
|
run: |
|
|
brew install ninja cmake
|
|
|
|
- name: Diagnose tools in use
|
|
run: |
|
|
cmake --version
|
|
ninja --version
|
|
${{ matrix.cxx }} --version
|
|
|
|
- name: Run the benchmarks
|
|
env:
|
|
COMMIT: ${{ inputs.commit }}
|
|
BENCHMARK_SUITE_VERSION: ${{ inputs.benchmark-suite-version }}
|
|
FILTER: ${{ inputs.filter }}
|
|
run: |
|
|
filter_arg=()
|
|
if [ -n "${FILTER}" ]; then
|
|
filter_arg=(--filter "${FILTER}")
|
|
fi
|
|
libcxx/utils/ci/lnt/run-benchmarks \
|
|
--test-suite-commit "${BENCHMARK_SUITE_VERSION}" \
|
|
--machine ${{ matrix.lnt-machine }} \
|
|
--compiler ${{ matrix.cxx }} \
|
|
--benchmark-commit "${COMMIT}" \
|
|
"${filter_arg[@]}" \
|
|
--output "${COMMIT}.json"
|
|
|
|
cat "${COMMIT}.json"
|
|
|
|
- name: Submit to LNT
|
|
if: ${{ inputs.submit-lnt }}
|
|
env:
|
|
COMMIT: ${{ inputs.commit }}
|
|
LNT_URL: ${{ inputs.lnt-url }}
|
|
run: |
|
|
libcxx/utils/ci/lnt/submit-benchmarks \
|
|
--lnt-url "${LNT_URL}" \
|
|
--test-suite libcxx2 \
|
|
"${COMMIT}.json"
|