Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8d3d897
add project-qualified hub labels @hub//project/<stamp>:<pkg>
xangcastle Jun 4, 2026
06ce478
Merge branch 'main' into xangcastle/quilified-labels
xangcastle Jun 26, 2026
58ce530
fix(py): exclude Tcl/Tk runtime libraries when exclude_feature=tkinte…
xangcastle Jul 6, 2026
15c3c88
fix(uv): deduplicate whl_install wheel file labels (#1232)
jbedard Jul 6, 2026
085595a
refactor(uv): remove redundant is_* indirection from ABI config setti…
jbedard Jul 6, 2026
928e9f4
fix: unformatted error message (#1237)
jbedard Jul 6, 2026
6e01a43
refactor: remove dead code (#1236)
jbedard Jul 6, 2026
42751ca
perf(uv): use index cursors in PEP 508 tokenizer and parser (#1239)
jbedard Jul 6, 2026
1d74a22
refactor: remove unused load()s in generated code (#1241)
jbedard Jul 6, 2026
704e16c
refactor(py): remove dead code and unreachable paths (#1248)
jbedard Jul 7, 2026
1834c16
chore: remove orphaned tools/e2e devserver (#1249)
jbedard Jul 7, 2026
b1725c7
fix(uv): correct GitHub archive URLs for git ref sources (#1238)
jbedard Jul 7, 2026
5204fc2
refactor(uv): warn instead of silently skipping pyproject parsing wit…
jbedard Jul 7, 2026
c876f4c
fix: invalid error message on failure (#1245)
jbedard Jul 7, 2026
b9f3a3f
ci: use 32core for rules-proto-grpc-python e2e test (#1251)
jbedard Jul 7, 2026
690804f
test: cover PEP 508 ~=/===/partial eval, dep_groups, and pytest_shard…
jbedard Jul 7, 2026
a631d3a
chore: upgrade aspect-cli to 2026.28.2
jbedard Jul 7, 2026
c54b612
refactor(uv): remove the unresolved uv toolchain type (#1250)
jbedard Jul 7, 2026
0b6d7e8
fix(py_image_layer): wire PY_TOOLCHAIN through py_venv_exec so interp…
xangcastle Jul 7, 2026
025c748
fix(uv): select C++ compiler companions (#1213)
tamird Jul 7, 2026
79db931
test: cover py_pex_binary shebang, inherit_path, and constraint attrs…
jbedard Jul 7, 2026
c76bdc8
fix: correct two broken CLI error paths found in the dead-code audit …
jbedard Jul 7, 2026
dbb5287
refactor(uv): simplify no-op logic in whl_install repo rule (#1259)
jbedard Jul 7, 2026
7515417
feat: Analysis benchmark (#1264)
xangcastle Jul 7, 2026
06ce9b3
perf(uv): name uv_project targets without pure-Starlark sha1 (#1255)
jbedard Jul 7, 2026
f585d9c
refactor(uv): remove dead code and unreachable paths (#1260)
jbedard Jul 7, 2026
31d4d94
chore: remove the unconsumed root requirements lockfile loop (#1266)
jbedard Jul 7, 2026
c9242bb
refactor(py_venv): dedupe winner-selection walk in collision resoluti…
jbedard Jul 7, 2026
4071c50
refactor(py_venv): share provider construction between rule variants …
jbedard Jul 7, 2026
547fda2
test: assert the freethreaded venv layout in freethreaded-805 (#1258)
jbedard Jul 7, 2026
ffabde1
test(uv): unit-cover parse_whl_name and version_util.is_decimal (#1261)
jbedard Jul 7, 2026
e587410
perf(uv): collapse abi tag config_setting_groups into config_settings…
jbedard Jul 7, 2026
9771104
refactor(uv): alias cp* python-version constraints to their py* twins…
jbedard Jul 7, 2026
2669911
refactor(uv): consolidate indent/url_basename/hash helpers (#1263)
jbedard Jul 7, 2026
31e8616
perf(uv): derive SCC ids without hashing full SCC content (#1253)
jbedard Jul 7, 2026
1763f00
chore: config hygiene — drop no-op flags, dead ci.bazelrc stanzas, tr…
jbedard Jul 7, 2026
2ba1ea4
chore: remove orphaned test fixtures (#1272)
jbedard Jul 7, 2026
92d2213
fix(pytest): expose main() from py_pytest_main-generated entrypoints …
jbedard Jul 7, 2026
8364c55
fix: resolve py_image_layer.platform relative to the calling repo (#1…
jbedard Jul 7, 2026
bc9a851
perf(py_venv): precompute per-wheel collision claims in the wheel rec…
jbedard Jul 8, 2026
60dcaf9
refactor(uv): make SCC computation linear and single-pass (#1246)
jbedard Jul 8, 2026
279543d
fix(py_venv): merge colliding package directories (#1205)
tamird Jul 8, 2026
6400ae4
chore: remove unused bazel/defs.bzl and empty bazel/patches (#1280)
jbedard Jul 8, 2026
8212791
chore: remove unused tools scripts (#1282)
jbedard Jul 8, 2026
f227521
chore: delete unused code (#1281)
jbedard Jul 8, 2026
4211c23
chore: checkin MODULE.bazel.lock files (#1278)
jbedard Jul 8, 2026
54a69a8
perf(uv): expand wheel configurations once per distinct tag triple (#…
jbedard Jul 8, 2026
0f0a215
perf(py_venv): build symlink target paths from a cached per-wheel pre…
jbedard Jul 8, 2026
ac3087e
refactor: simplify _resolve_wheel_collisions (#1283)
acozzette Jul 9, 2026
400409f
add project-qualified hub labels @hub//project/<stamp>:<pkg>
xangcastle Jun 4, 2026
8642c38
refactor: unify namespace entry merging across both all-namespace bra…
acozzette Jul 9, 2026
16db162
Merge remote-tracking branch 'origin/xangcastle/quilified-labels' int…
xangcastle Jul 10, 2026
b036884
add project-qualified hub labels @hub//project/<stamp>:<pkg>
xangcastle Jun 4, 2026
e96964c
Merge remote-tracking branch 'origin/xangcastle/quilified-labels' int…
xangcastle Jul 10, 2026
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
2 changes: 1 addition & 1 deletion .aspect/version.axl
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version("2026.26.18")
version("2026.28.2")
5 changes: 0 additions & 5 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ common --define=SOME_VAR=SOME_VALUE
# Set the default virtualenv to 'default'
common --@pypi//dep_group=aspect_rules_py

common --incompatible_enable_cc_toolchain_resolution
common --@llvm//config:experimental_stub_libgcc_s
common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false

Expand Down Expand Up @@ -40,7 +39,3 @@ common:release --compilation_mode=opt
# Build without the bytes
common:ci --remote_download_outputs=minimal
common:ci --nobuild_runfile_links

# Override the preset's `--lockfile_mode=error` on CI since we don't
# yet commit MODULE.bazel.lock — see .gitignore.
common:ci --lockfile_mode=off
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ py/private/release/version.bzl export-subst
# is data-only (the write_source_files rule lives in the parent BUILD.bazel),
# so the whole tree can be marked generated.
**/snapshots/** linguist-generated

# MODULE lock files are generated
MODULE.bazel.lock linguist-generated
8 changes: 5 additions & 3 deletions .github/workflows/ci-workflows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
- { path: "e2e/interpreter-runtime-metadata", slug: "e2e-interpreter-runtime-metadata", runner: "ubuntu-latest" }
- { path: "e2e/interpreter-toolchain-settings", slug: "e2e-interpreter-toolchain-settings", runner: "ubuntu-latest" }
- { path: "e2e/interpreter-input-validation", slug: "e2e-interpreter-input-validation", runner: "ubuntu-latest" }
- { path: "e2e/rules-proto-grpc-python", slug: "e2e-rules-proto-grpc-python", runner: "ubuntu-latest" }
- { path: "e2e/rules-proto-grpc-python", slug: "e2e-rules-proto-grpc-python", runner: "ubuntu-22.04-32core" }
- { path: "examples/debugger", slug: "examples-debugger", runner: "ubuntu-latest" }
- { path: "examples/dev_deps", slug: "examples-dev_deps", runner: "ubuntu-latest" }
- { path: "examples/django", slug: "examples-django", runner: "ubuntu-latest" }
Expand All @@ -58,8 +58,10 @@ jobs:
- { path: "examples/virtual_deps", slug: "examples-virtual_deps", runner: "ubuntu-latest" }
- { path: "examples/protobuf", slug: "examples-protobuf", runner: "ubuntu-22.04-32core" }
bazel:
- { id: "bazel-8", version: "8.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel8" }
- { id: "bazel-9", version: "9.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel9" }
# An empty version falls back to the workspace's .bazelversion, which validates
# the committed MODULE.bazel.lock; alternate versions may regenerate it instead.
- { id: "bazel-8", version: "", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel8 --bazel-flag=--lockfile_mode=error" }
- { id: "bazel-9", version: "9.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel9 --bazel-flag=--lockfile_mode=update" }
env:
USE_BAZEL_VERSION: ${{ matrix.bazel.version }}
steps:
Expand Down
16 changes: 2 additions & 14 deletions .github/workflows/ci.bazelrc
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
# This file contains Bazel settings to apply on CI only.
# It is referenced with a --bazelrc option in the call to bazel in ci.yaml
# Bazel settings applied on CI only, via an explicit --bazelrc option.

# Debug where options came from
build --announce_rc

# This directory is configured in GitHub actions to be persisted between runs.
build --disk_cache=~/.cache/bazel
# Share one repository cache across the many --output_base invocations.
build --repository_cache=~/.cache/bazel-repo

# Don't rely on test logs being easily accessible from the test runner,
# though it makes the log noisier.
test --test_output=errors

# Allows tests to run bazelisk-in-bazel, since this is the cache folder used
test --test_env=XDG_CACHE_HOME

# Ensure the binaries are build in opt during release.
build:release --compilation_mode opt
315 changes: 315 additions & 0 deletions .github/workflows/performance-benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,315 @@
name: Performance Benchmark

on:
pull_request:
push:
branches: [main]
workflow_dispatch:

env:
BCR_VERSION: "1.11.7"
ANALYSIS_BCR_VERSION: "2.0.0-alpha.4"

jobs:
startup:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout PR
uses: actions/checkout@v6
with:
fetch-depth: 0
path: rules_py_pr

- name: Checkout HEAD main
uses: actions/checkout@v6
with:
ref: main
path: rules_py_main

- name: Install hyperfine
run: |
set -euo pipefail
HYPERFINE_VERSION="1.18.0"
DEB="hyperfine_${HYPERFINE_VERSION}_amd64.deb"
URL="https://github.com/sharkdp/hyperfine/releases/download/v${HYPERFINE_VERSION}/${DEB}"
wget -qO "$DEB" "$URL"
sudo dpkg -i "$DEB"
rm -f "$DEB"
hyperfine --version

# ── BCR baseline ────────────────────────────────────────────────────────
- name: Benchmark BCR ${{ env.BCR_VERSION }}
run: |
set -euo pipefail
cd rules_py_pr/benchmark/startup
python3 generate_module.py bcr --version "${BCR_VERSION}"

OUT_BASE="/tmp/bazel-bcr"
rm -rf "$OUT_BASE"

START=$(date +%s%N)
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath
END=$(date +%s%N)
BUILD_MS=$(( (END - START) / 1000000 ))
echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/bcr-build.json"

BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; }
RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/bcr.json" "$BIN"

BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; }
RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/bcr-syspath.json"

# ── HEAD main ───────────────────────────────────────────────────────────
- name: Benchmark HEAD main
run: |
set -euo pipefail
cd rules_py_pr/benchmark/startup
python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_main"

OUT_BASE="/tmp/bazel-main"
rm -rf "$OUT_BASE"

START=$(date +%s%N)
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath
END=$(date +%s%N)
BUILD_MS=$(( (END - START) / 1000000 ))
echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/main-build.json"

BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; }
RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/main.json" "$BIN"

BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; }
RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/main-syspath.json"

# ── Current commit (PR) ─────────────────────────────────────────────────
- name: Benchmark current PR
run: |
set -euo pipefail
cd rules_py_pr/benchmark/startup
python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_pr"

OUT_BASE="/tmp/bazel-pr"
rm -rf "$OUT_BASE"

START=$(date +%s%N)
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath
END=$(date +%s%N)
BUILD_MS=$(( (END - START) / 1000000 ))
echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/pr-build.json"

BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; }
RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/pr.json" "$BIN"

BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1)
test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; }
RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/pr-syspath.json"

# ── Compare ─────────────────────────────────────────────────────────────
- name: Compare startup results
id: compare
continue-on-error: true
run: |
set -euo pipefail
python3 rules_py_pr/benchmark/startup/compare.py \
--output-table startup-table.txt \
bcr.json main.json pr.json

- name: Save PR number
if: github.event_name == 'pull_request'
run: echo "${{ github.event.pull_request.number }}" > pr-number.txt

- name: Upload startup artifacts
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: startup-benchmark-results
path: |
startup-table.txt
pr-number.txt
if-no-files-found: warn

- name: Fail on regression
if: steps.compare.outcome == 'failure'
run: exit 1

analysis:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout PR
uses: actions/checkout@v6
with:
fetch-depth: 0
path: rules_py_pr

- name: Checkout HEAD main
uses: actions/checkout@v6
with:
ref: main
path: rules_py_main

- name: Install hyperfine
run: |
set -euo pipefail
HYPERFINE_VERSION="1.18.0"
DEB="hyperfine_${HYPERFINE_VERSION}_amd64.deb"
URL="https://github.com/sharkdp/hyperfine/releases/download/v${HYPERFINE_VERSION}/${DEB}"
wget -qO "$DEB" "$URL"
sudo dpkg -i "$DEB"
rm -f "$DEB"
hyperfine --version

- name: Generate workspace
run: |
set -euo pipefail
cd rules_py_pr/benchmark/analysis
python3 workspace/generate_workspace.py --root workspace --packages 50

# ── BCR baseline ────────────────────────────────────────────────────────
- name: Benchmark BCR ${{ env.ANALYSIS_BCR_VERSION }}
run: |
set -euo pipefail
cd rules_py_pr/benchmark/analysis
python3 generate_module.py bcr --version "${ANALYSIS_BCR_VERSION}"

OUT_BASE="/tmp/bazel-bcr"
rm -rf "$OUT_BASE"

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/...

hyperfine --warmup 1 --runs 10 \
--prepare 'rm -rf /tmp/bazel-bcr-analysis' \
--export-json "${GITHUB_WORKSPACE}/bcr.json" \
'bazel --output_base=/tmp/bazel-bcr-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...'

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/bcr-packages.txt
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/bcr-targets.txt
echo "{\"packages\": $(wc -l < /tmp/bcr-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/bcr-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/bcr-aux.json"

# ── HEAD main ───────────────────────────────────────────────────────────
- name: Benchmark HEAD main
run: |
set -euo pipefail
cd rules_py_pr/benchmark/analysis
python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_main"

OUT_BASE="/tmp/bazel-main"
rm -rf "$OUT_BASE"

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/...

hyperfine --warmup 1 --runs 10 \
--prepare 'rm -rf /tmp/bazel-main-analysis' \
--export-json "${GITHUB_WORKSPACE}/main.json" \
'bazel --output_base=/tmp/bazel-main-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...'

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/main-packages.txt
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/main-targets.txt
echo "{\"packages\": $(wc -l < /tmp/main-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/main-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/main-aux.json"

# ── Current commit (PR) ─────────────────────────────────────────────────
- name: Benchmark current PR
run: |
set -euo pipefail
cd rules_py_pr/benchmark/analysis
python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_pr"

OUT_BASE="/tmp/bazel-pr"
rm -rf "$OUT_BASE"

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/...

hyperfine --warmup 1 --runs 10 \
--prepare 'rm -rf /tmp/bazel-pr-analysis' \
--export-json "${GITHUB_WORKSPACE}/pr.json" \
'bazel --output_base=/tmp/bazel-pr-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...'

bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/pr-packages.txt
bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/pr-targets.txt
echo "{\"packages\": $(wc -l < /tmp/pr-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/pr-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/pr-aux.json"

# ── Compare ─────────────────────────────────────────────────────────────
- name: Compare analysis results
id: compare
continue-on-error: true
run: |
set -euo pipefail
python3 rules_py_pr/benchmark/analysis/compare.py \
--output-table analysis-table.txt \
bcr.json main.json pr.json

- name: Upload analysis artifacts
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: analysis-benchmark-results
path: |
analysis-table.txt
if-no-files-found: warn

- name: Fail on regression
if: steps.compare.outcome == 'failure'
run: exit 1

comment:
runs-on: ubuntu-latest
needs: [startup, analysis]
if: always() && github.event_name == 'pull_request' && (needs.startup.result == 'success' || needs.startup.result == 'failure') && (needs.analysis.result == 'success' || needs.analysis.result == 'failure')
permissions:
pull-requests: write
steps:
- name: Download startup artifacts
uses: actions/download-artifact@v4
with:
name: startup-benchmark-results

- name: Download analysis artifacts
uses: actions/download-artifact@v4
with:
name: analysis-benchmark-results

- name: Post combined benchmark comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const startup = fs.readFileSync('startup-table.txt', 'utf8').trim();
const analysis = fs.readFileSync('analysis-table.txt', 'utf8').trim();
const prNumber = parseInt(fs.readFileSync('pr-number.txt', 'utf8').trim());
const header = '<!-- performance-benchmark -->';
const body = `${header}\n\n${startup}\n\n${analysis}`;
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
});
const existing = comments.find(c => c.body && c.body.includes(header));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body: body,
});
console.log(`Updated comment ${existing.id}`);
} else {
const { data: created } = await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: body,
});
console.log(`Created comment ${created.id}`);
}

- name: Fail if any benchmark regressed
if: needs.startup.result == 'failure' || needs.analysis.result == 'failure'
run: exit 1
13 changes: 0 additions & 13 deletions .github/workflows/release_docs.sh

This file was deleted.

Loading
Loading