fix(web): Run column shows run_id, the real global progressive
run.number only counts within its own repo/workflow -- meaningless once the admin endpoint mixes every repo into one list, and already not what the row order is sorted by. run_id is Gitea's actual instance-wide, strictly-increasing id, so the displayed number now agrees with "most recent globally". The link still goes to Gitea's own per-repo run page (html_url); only the label text changed.
This commit is contained in:
@@ -359,6 +359,15 @@ table is wide as a result — 13 columns — and scrolls horizontally inside the
|
|||||||
card's own `.table-wrap` rather than the page, same as the other wide tables
|
card's own `.table-wrap` rather than the page, same as the other wide tables
|
||||||
(Templates, Services).
|
(Templates, Services).
|
||||||
|
|
||||||
|
**Run shows `run_id`, not the per-repo `#N`.** Gitea's `run_number` only
|
||||||
|
counts within its own repo/workflow, so it is meaningless once the admin
|
||||||
|
endpoint mixes every repo on the instance into one list; `run_id` is Gitea's
|
||||||
|
own instance-wide, strictly-increasing id, which is what "global recency"
|
||||||
|
above is sorted on too, so the number in the column and the row order agree.
|
||||||
|
The cell still links out to Gitea's own run page (`html_url`, which Gitea
|
||||||
|
builds from the per-repo number internally) — only the *displayed* text
|
||||||
|
changed.
|
||||||
|
|
||||||
**Started is click-to-toggle.** It renders relative ("2h ago") by default;
|
**Started is click-to-toggle.** It renders relative ("2h ago") by default;
|
||||||
clicking swaps to the absolute local timestamp, and clicking again swaps
|
clicking swaps to the absolute local timestamp, and clicking again swaps
|
||||||
back. Both strings are pre-rendered server-side into the button's
|
back. Both strings are pre-rendered server-side into the button's
|
||||||
|
|||||||
@@ -73,9 +73,9 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
{% if run.html_url %}
|
{% if run.html_url %}
|
||||||
<a href="{{ run.html_url }}" target="_blank" rel="noopener noreferrer">#{{ run.number }}{% if run.attempt > 1 %}.{{ run.attempt }}{% endif %}<svg class="icon" aria-hidden="true"><use href="#i-external"></use></svg></a>
|
<a href="{{ run.html_url }}" target="_blank" rel="noopener noreferrer">#{{ run.run_id }}{% if run.attempt > 1 %}.{{ run.attempt }}{% endif %}<svg class="icon" aria-hidden="true"><use href="#i-external"></use></svg></a>
|
||||||
{% else %}
|
{% else %}
|
||||||
#{{ run.number }}{% if run.attempt > 1 %}.{{ run.attempt }}{% endif %}
|
#{{ run.run_id }}{% if run.attempt > 1 %}.{{ run.attempt }}{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>{{ run.repo or "—" }}</td>
|
<td>{{ run.repo or "—" }}</td>
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ def test_card_renders_run_row_with_its_vm(
|
|||||||
resp = client.get("/executions")
|
resp = client.get("/executions")
|
||||||
|
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
assert "#12" in resp.text
|
assert "#412" in resp.text
|
||||||
assert "build-ns7zip.yml" in resp.text
|
assert "build-ns7zip.yml" in resp.text
|
||||||
assert "simone/local-ci-cd-system" in resp.text
|
assert "simone/local-ci-cd-system" in resp.text
|
||||||
assert "a1b2c3d" in resp.text # commit shortened to 7 chars
|
assert "a1b2c3d" in resp.text # commit shortened to 7 chars
|
||||||
@@ -238,7 +238,7 @@ def test_attempt_shown_only_when_greater_than_one(
|
|||||||
|
|
||||||
resp = client.get("/executions")
|
resp = client.get("/executions")
|
||||||
|
|
||||||
assert "#12.2" in resp.text
|
assert "#412.2" in resp.text
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@@ -480,7 +480,7 @@ def test_end_to_end_against_a_stubbed_gitea(
|
|||||||
resp = client.get("/executions")
|
resp = client.get("/executions")
|
||||||
|
|
||||||
assert resp.status_code == 200
|
assert resp.status_code == 200
|
||||||
assert "#12" in resp.text
|
assert "#412" in resp.text
|
||||||
assert "build-ns7zip.yml" in resp.text
|
assert "build-ns7zip.yml" in resp.text
|
||||||
# The clone is attached to its run, so it is not listed as "no run".
|
# The clone is attached to its run, so it is not listed as "no run".
|
||||||
assert "no run" not in resp.text
|
assert "no run" not in resp.text
|
||||||
@@ -852,7 +852,7 @@ def test_scope_refused_login_token_falls_back_to_the_pat(
|
|||||||
resp = client.get("/executions")
|
resp = client.get("/executions")
|
||||||
|
|
||||||
assert seen == ["scope-less", _FAKE_PAT]
|
assert seen == ["scope-less", _FAKE_PAT]
|
||||||
assert "#12" in resp.text
|
assert "#412" in resp.text
|
||||||
|
|
||||||
|
|
||||||
def test_no_pat_fallback_when_none_configured(
|
def test_no_pat_fallback_when_none_configured(
|
||||||
@@ -944,7 +944,7 @@ def test_401_triggers_one_refresh_then_retries(
|
|||||||
|
|
||||||
assert seen == ["stale", "fresh"]
|
assert seen == ["stale", "fresh"]
|
||||||
assert len(stub.refresh_calls) == 1
|
assert len(stub.refresh_calls) == 1
|
||||||
assert "#12" in resp.text
|
assert "#412" in resp.text
|
||||||
assert gitea_token_for(app, "Simone") is not None
|
assert gitea_token_for(app, "Simone") is not None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user