Skip to content

Commit 31d5e9b

Browse files
committed
show in-progress builds on build queue page
1 parent bbf1c3f commit 31d5e9b

File tree

4 files changed

+64
-22
lines changed

4 files changed

+64
-22
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
DROP INDEX builds_build_status_idx;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CREATE INDEX builds_build_status_idx ON builds USING btree (build_status ASC);

src/web/releases.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,8 @@ pub(crate) async fn activity_handler(mut conn: DbConnection) -> AxumResult<impl
739739
struct BuildQueuePage {
740740
description: &'static str,
741741
queue: Vec<QueuedCrate>,
742-
active_deployments: Vec<String>,
742+
active_cdn_deployments: Vec<String>,
743+
in_progress_builds: Vec<(String, String)>,
743744
}
744745

745746
impl_axum_webpage! {
@@ -749,6 +750,7 @@ impl_axum_webpage! {
749750
pub(crate) async fn build_queue_handler(
750751
Extension(build_queue): Extension<Arc<BuildQueue>>,
751752
Extension(pool): Extension<Pool>,
753+
mut conn: DbConnection,
752754
) -> AxumResult<impl IntoResponse> {
753755
let (queue, active_deployments) = spawn_blocking(move || {
754756
let mut queue = build_queue.queued_crates()?;
@@ -776,10 +778,28 @@ pub(crate) async fn build_queue_handler(
776778
})
777779
.await?;
778780

781+
let in_progress_builds: Vec<(String, String)> = sqlx::query!(
782+
r#"SELECT
783+
crates.name,
784+
releases.version
785+
FROM builds
786+
INNER JOIN releases ON releases.id = builds.rid
787+
INNER JOIN crates ON releases.crate_id = crates.id
788+
WHERE
789+
builds.build_status = 'in_progress'
790+
ORDER BY builds.id ASC"#
791+
)
792+
.fetch_all(&mut *conn)
793+
.await?
794+
.into_iter()
795+
.map(|rec| (rec.name.into(), rec.version.into()))
796+
.collect();
797+
779798
Ok(BuildQueuePage {
780799
description: "crate documentation scheduled to build & deploy",
781800
queue,
782-
active_deployments,
801+
active_cdn_deployments: active_deployments,
802+
in_progress_builds,
783803
})
784804
}
785805

templates/releases/build_queue.html

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,54 @@
1010
{%- block body -%}
1111
<div class="container">
1212
<div class="recent-releases-container">
13-
{%- if active_deployments %}
14-
<div class="release">
15-
<strong>active CDN deployments</strong>
13+
<div class="release pure-g">
14+
<div class="pure-u-1-2">
15+
<strong>currently being built</strong>
16+
</div>
17+
<div class="pure-u-1-2">
18+
{%- if active_cdn_deployments %}
19+
<strong>active CDN deployments</strong>
20+
{%- endif %}
21+
</div>
1622
</div>
1723

1824
<div class = "pure-g">
1925
<div class="pure-u-1-2">
20-
<ol class="queue-list">
21-
{% for krate in active_deployments -%}
22-
<li>
23-
<a href="https://docs.rs/{{ krate }}">
24-
{{ krate }}
25-
</a>
26-
</li>
27-
{%- endfor %}
28-
</ol>
26+
{%- if in_progress_builds %}
27+
<ol class="queue-list">
28+
{% for release in in_progress_builds -%}
29+
<li>
30+
<a href="/crate/{{ release.0 }}/{{ release.1 }}/builds">
31+
{{ release.0 }} {{ release.1 }}
32+
</a>
33+
</li>
34+
{%- endfor %}
35+
</ol>
36+
{%- else %}
37+
<strong>There is nothing currently being built</strong>
38+
{%- endif %}
2939
</div>
3040
<div class="pure-u-1-2">
31-
<div class="about">
32-
<p>
33-
After the build finishes it may take up to 20 minutes for all documentation
34-
pages to be up-to-date and available to everybody.
35-
</p>
36-
<p>Especially <code>/latest/</code> URLs might be affected.</p>
37-
</div>
41+
{%- if active_cdn_deployments %}
42+
<ol class="queue-list">
43+
{% for krate in active_cdn_deployments -%}
44+
<li>
45+
<a href="/{{ krate }}">
46+
{{ krate }}
47+
</a>
48+
</li>
49+
{%- endfor %}
50+
</ol>
51+
<div class="about">
52+
<p>
53+
After the build finishes it may take up to 20 minutes for all documentation
54+
pages to be up-to-date and available to everybody.
55+
</p>
56+
<p>Especially <code>/latest/</code> URLs might be affected.</p>
57+
</div>
58+
{%- endif %}
3859
</div>
3960
</div>
40-
{%- endif %}
4161

4262
<div class="release">
4363
<strong>Build Queue</strong>

0 commit comments

Comments
 (0)