mirror of
https://github.com/leanprover/lean4.git
synced 2026-03-17 10:24:07 +00:00
This PR adds a `lake-ci` label that enables the full Lake test suite in CI, avoiding the need to temporarily commit and revert changes to `tests/CMakeLists.txt`. The `lake-ci` label implies `release-ci` (check level 3), so all release platforms are also tested. Motivated by https://github.com/leanprover/lean4/pull/12540#issuecomment-4000081071 where @tydeu requested running `release-ci` with Lake tests enabled, which previously required temporarily uncommenting a line in `tests/CMakeLists.txt`. Users can add it via a PR comment containing `lake-ci` on its own line, or by adding the label manually. CI automatically restarts when the label is added. Implementation: - `ci.yml`: detect `lake-ci` label, set check level 3, pass `-DLAKE_CI=ON` to cmake - `tests/CMakeLists.txt`: `option(LAKE_CI ...)` conditionally enables full `tests/lake/tests/` glob - `restart-on-label.yml`: restart CI on `lake-ci` label - `labels-from-comments.yml`: support `lake-ci` comment 🤖 Prepared with Claude Code --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
36 lines
1.3 KiB
YAML
36 lines
1.3 KiB
YAML
name: Restart by label
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- unlabeled
|
|
- labeled
|
|
jobs:
|
|
restart-on-label:
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.label.name, 'merge-ci') || contains(github.event.label.name, 'release-ci') || contains(github.event.label.name, 'lake-ci')
|
|
steps:
|
|
- run: |
|
|
# Finding latest CI workflow run on current pull request
|
|
# (unfortunately cannot search by PR number, only base branch,
|
|
# and that is't even unique given PRs from forks, but the risk
|
|
# of confusion is low and the danger is mild)
|
|
echo "Trying to find a run with branch $head_ref and commit $head_sha"
|
|
run_id="$(gh run list -e pull_request -b "$head_ref" -c "$head_sha" \
|
|
--workflow 'CI' --limit 1 --json databaseId --jq '.[0].databaseId')"
|
|
echo "Run id: ${run_id}"
|
|
gh run view "$run_id"
|
|
echo "Cancelling (just in case)"
|
|
gh run cancel "$run_id" || echo "(failed)"
|
|
echo "Waiting for 30s"
|
|
sleep 30
|
|
gh run view "$run_id"
|
|
echo "Rerunning"
|
|
gh run rerun "$run_id"
|
|
gh run view "$run_id"
|
|
shell: bash
|
|
env:
|
|
head_ref: ${{ github.head_ref }}
|
|
head_sha: ${{ github.event.pull_request.head.sha }}
|
|
GH_TOKEN: ${{ github.token }}
|
|
GH_REPO: ${{ github.repository }}
|