Skip to content

Commit 524c2f1

Browse files
authored
Merge pull request #346 from Kobzol/check-run-disable
Temporarily partially revert 338
2 parents 62bc340 + dc9d6c7 commit 524c2f1

File tree

12 files changed

+12
-563
lines changed

12 files changed

+12
-563
lines changed

.sqlx/query-33cf1b803a0b658f197ab26d87e2c6c4fe42128cb481a234372626f35392e809.json

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ One-time setup:
5353
- Create your own GitHub app.
5454
- Configure its webhook secret.
5555
- Configure its private key.
56-
- Give it permissions for `Actions` (r/w), `Checks` (r), `Commit statuses` (r), `Contents` (r/w), `Issues` (r/w) and
56+
- Give it permissions for `Actions` (r/w), `Checks` (r/w), `Commit statuses` (r), `Contents` (r/w), `Issues` (r/w) and
5757
`Pull requests` (r/w).
5858
- Subscribe it to webhook events `Check suite`, `Check run`, `Issue comment`, `Issues`, `Pull request`,
5959
`Pull request review`, `Pull request review comment` and `Workflow run`.

src/bors/handlers/refresh.rs

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::time::Duration;
33

44
use anyhow::Context;
55
use chrono::{DateTime, Utc};
6-
use octocrab::params::checks::{CheckRunConclusion, CheckRunStatus};
76
use std::collections::BTreeMap;
87

98
use crate::bors::Comment;
@@ -29,22 +28,6 @@ pub async fn cancel_timed_out_builds(
2928

3029
db.update_build_status(&build, BuildStatus::Cancelled)
3130
.await?;
32-
33-
if let Some(check_run_id) = build.check_run_id {
34-
if let Err(error) = repo
35-
.client
36-
.update_check_run(
37-
check_run_id as u64,
38-
CheckRunStatus::Completed,
39-
Some(CheckRunConclusion::TimedOut),
40-
None,
41-
)
42-
.await
43-
{
44-
tracing::error!("Could not update check run {check_run_id}: {error:?}");
45-
}
46-
}
47-
4831
if let Some(pr) = db.find_pr_by_build(&build).await? {
4932
if let Err(error) = cancel_build_workflows(&repo.client, db, &build).await {
5033
tracing::error!(
@@ -198,13 +181,11 @@ fn elapsed_time(date: DateTime<Utc>) -> Duration {
198181
mod tests {
199182
use crate::bors::PullRequestStatus;
200183
use crate::bors::handlers::refresh::MOCK_TIME;
201-
use crate::bors::handlers::trybuild::TRY_BUILD_CHECK_RUN_NAME;
202184
use crate::database::{MergeableState, OctocrabMergeableState};
203185
use crate::tests::mocks::{
204186
BorsBuilder, GitHubState, default_pr_number, default_repo_name, run_test,
205187
};
206188
use chrono::Utc;
207-
use octocrab::params::checks::{CheckRunConclusion, CheckRunStatus};
208189
use std::future::Future;
209190
use std::time::Duration;
210191
use tokio::runtime::RuntimeFlavor;
@@ -286,33 +267,6 @@ timeout = 3600
286267
.await;
287268
}
288269

289-
#[sqlx::test]
290-
async fn refresh_cancel_build_updates_check_run(pool: sqlx::PgPool) {
291-
BorsBuilder::new(pool)
292-
.github(gh_state_with_long_timeout())
293-
.run_test(|mut tester| async move {
294-
tester.post_comment("@bors try").await?;
295-
tester.expect_comments(1).await;
296-
297-
with_mocked_time(Duration::from_secs(4000), async {
298-
tester.cancel_timed_out_builds().await;
299-
})
300-
.await;
301-
tester.expect_comments(1).await;
302-
303-
tester.expect_check_run(
304-
&tester.default_pr().await.get_gh_pr().head_sha,
305-
TRY_BUILD_CHECK_RUN_NAME,
306-
"Bors try build",
307-
CheckRunStatus::Completed,
308-
Some(CheckRunConclusion::TimedOut),
309-
);
310-
311-
Ok(tester)
312-
})
313-
.await;
314-
}
315-
316270
#[sqlx::test]
317271
async fn refresh_cancel_workflow_after_timeout(pool: sqlx::PgPool) {
318272
let gh = BorsBuilder::new(pool)

src/bors/handlers/trybuild.rs

Lines changed: 5 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use std::sync::Arc;
22

33
use anyhow::{Context, anyhow};
4-
use octocrab::params::checks::CheckRunOutput;
5-
use octocrab::params::checks::CheckRunStatus;
64

75
use crate::PgDbClient;
86
use crate::bors::RepositoryState;
@@ -35,9 +33,6 @@ pub(super) const TRY_MERGE_BRANCH_NAME: &str = "automation/bors/try-merge";
3533
// This branch should run CI checks.
3634
pub(super) const TRY_BRANCH_NAME: &str = "automation/bors/try";
3735

38-
// The name of the check run seen in the GitHub UI.
39-
pub(super) const TRY_BUILD_CHECK_RUN_NAME: &str = "Bors try build";
40-
4136
/// Performs a so-called try build - merges the PR branch into a special branch designed
4237
/// for running CI checks.
4338
///
@@ -92,34 +87,10 @@ pub(super) async fn command_try_build(
9287
{
9388
MergeResult::Success(merge_sha) => {
9489
// If the merge was succesful, run CI with merged commit
95-
let build_id =
96-
run_try_build(&repo.client, &db, &pr.db, merge_sha.clone(), base_sha).await?;
90+
run_try_build(&repo.client, &db, &pr.db, merge_sha.clone(), base_sha).await?;
9791

9892
handle_label_trigger(repo, pr.number(), LabelTrigger::TryBuildStarted).await?;
9993

100-
// Create a check run to track the try build status in GitHub's UI.
101-
// This gets added to the PR's head SHA so GitHub shows UI in the checks tab and
102-
// the bottom of the PR.
103-
let check_run = repo
104-
.client
105-
.create_check_run(
106-
TRY_BUILD_CHECK_RUN_NAME,
107-
&pr.github.head.sha,
108-
CheckRunStatus::InProgress,
109-
CheckRunOutput {
110-
title: "Bors try build".to_string(),
111-
summary: "".to_string(),
112-
text: None,
113-
annotations: vec![],
114-
images: vec![],
115-
},
116-
&build_id.to_string(),
117-
)
118-
.await?;
119-
120-
db.update_build_check_run_id(build_id, check_run.id.into_inner() as i64)
121-
.await?;
122-
12394
repo.client
12495
.post_comment(
12596
pr.number(),
@@ -205,18 +176,17 @@ async fn run_try_build(
205176
pr: &PullRequestModel,
206177
commit_sha: CommitSha,
207178
parent_sha: CommitSha,
208-
) -> anyhow::Result<i32> {
179+
) -> anyhow::Result<()> {
209180
client
210181
.set_branch_to_sha(TRY_BRANCH_NAME, &commit_sha, ForcePush::Yes)
211182
.await
212183
.map_err(|error| anyhow!("Cannot set try branch to main branch: {error:?}"))?;
213184

214-
let build_id = db
215-
.attach_try_build(pr, TRY_BRANCH_NAME.to_string(), commit_sha, parent_sha)
185+
db.attach_try_build(pr, TRY_BRANCH_NAME.to_string(), commit_sha, parent_sha)
216186
.await?;
217187

218188
tracing::info!("Try build started");
219-
Ok(build_id)
189+
Ok(())
220190
}
221191

222192
enum MergeResult {
@@ -337,16 +307,13 @@ fn auto_merge_commit_message(
337307

338308
#[cfg(test)]
339309
mod tests {
340-
use crate::bors::handlers::trybuild::{
341-
TRY_BRANCH_NAME, TRY_BUILD_CHECK_RUN_NAME, TRY_MERGE_BRANCH_NAME,
342-
};
310+
use crate::bors::handlers::trybuild::{TRY_BRANCH_NAME, TRY_MERGE_BRANCH_NAME};
343311
use crate::database::operations::get_all_workflows;
344312
use crate::github::CommitSha;
345313
use crate::tests::mocks::{
346314
BorsBuilder, Comment, GitHubState, User, Workflow, WorkflowEvent, default_pr_number,
347315
default_repo_name, run_test,
348316
};
349-
use octocrab::params::checks::{CheckRunConclusion, CheckRunStatus};
350317

351318
#[sqlx::test]
352319
async fn try_success(pool: sqlx::PgPool) {
@@ -894,70 +861,4 @@ try_failed = ["+foo", "+bar", "-baz"]
894861
})
895862
.await;
896863
}
897-
898-
#[sqlx::test]
899-
async fn try_build_creates_check_run(pool: sqlx::PgPool) {
900-
run_test(pool.clone(), |mut tester| async {
901-
tester.create_branch(TRY_BRANCH_NAME).expect_suites(1);
902-
tester.post_comment("@bors try").await?;
903-
tester.expect_comments(1).await;
904-
905-
tester.expect_check_run(
906-
&tester.default_pr().await.get_gh_pr().head_sha,
907-
TRY_BUILD_CHECK_RUN_NAME,
908-
"Bors try build",
909-
CheckRunStatus::InProgress,
910-
None,
911-
);
912-
913-
Ok(tester)
914-
})
915-
.await;
916-
}
917-
918-
#[sqlx::test]
919-
async fn try_build_updates_check_run_on_success(pool: sqlx::PgPool) {
920-
run_test(pool.clone(), |mut tester| async {
921-
tester.create_branch(TRY_BRANCH_NAME).expect_suites(1);
922-
tester.post_comment("@bors try").await?;
923-
tester.expect_comments(1).await;
924-
925-
tester.workflow_success(tester.try_branch()).await?;
926-
tester.expect_comments(1).await;
927-
928-
tester.expect_check_run(
929-
&tester.default_pr().await.get_gh_pr().head_sha,
930-
TRY_BUILD_CHECK_RUN_NAME,
931-
"Bors try build",
932-
CheckRunStatus::Completed,
933-
Some(CheckRunConclusion::Success),
934-
);
935-
936-
Ok(tester)
937-
})
938-
.await;
939-
}
940-
941-
#[sqlx::test]
942-
async fn try_build_updates_check_run_on_failure(pool: sqlx::PgPool) {
943-
run_test(pool.clone(), |mut tester| async {
944-
tester.create_branch(TRY_BRANCH_NAME).expect_suites(1);
945-
tester.post_comment("@bors try").await?;
946-
tester.expect_comments(1).await;
947-
948-
tester.workflow_failure(tester.try_branch()).await?;
949-
tester.expect_comments(1).await;
950-
951-
tester.expect_check_run(
952-
&tester.default_pr().await.get_gh_pr().head_sha,
953-
TRY_BUILD_CHECK_RUN_NAME,
954-
"Bors try build",
955-
CheckRunStatus::Completed,
956-
Some(CheckRunConclusion::Failure),
957-
);
958-
959-
Ok(tester)
960-
})
961-
.await;
962-
}
963864
}

src/bors/handlers/workflow.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
use std::sync::Arc;
22
use std::time::Duration;
33

4-
use octocrab::params::checks::CheckRunConclusion;
5-
use octocrab::params::checks::CheckRunStatus;
6-
74
use crate::PgDbClient;
85
use crate::bors::CheckSuiteStatus;
96
use crate::bors::RepositoryState;
@@ -196,18 +193,6 @@ async fn try_complete_build(
196193

197194
handle_label_trigger(repo, pr.number, trigger).await?;
198195

199-
if let Some(check_run_id) = build.check_run_id {
200-
let (status, conclusion) = if has_failure {
201-
(CheckRunStatus::Completed, Some(CheckRunConclusion::Failure))
202-
} else {
203-
(CheckRunStatus::Completed, Some(CheckRunConclusion::Success))
204-
};
205-
206-
repo.client
207-
.update_check_run(check_run_id as u64, status, conclusion, None)
208-
.await?;
209-
}
210-
211196
let message = if !has_failure {
212197
tracing::info!("Workflow succeeded");
213198
try_build_succeeded_comment(&workflows, payload.commit_sha, &build)

src/database/client.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ use super::operations::{
1515
get_prs_with_unknown_mergeable_state, get_pull_request, get_repository, get_repository_by_name,
1616
get_running_builds, get_workflow_urls_for_build, get_workflows_for_build,
1717
insert_repo_if_not_exists, set_pr_assignees, set_pr_priority, set_pr_rollup, set_pr_status,
18-
unapprove_pull_request, undelegate_pull_request, update_build_check_run_id,
19-
update_build_status, update_mergeable_states_by_base_branch, update_pr_mergeable_state,
20-
update_pr_try_build_id, update_workflow_status, upsert_pull_request, upsert_repository,
18+
unapprove_pull_request, undelegate_pull_request, update_build_status,
19+
update_mergeable_states_by_base_branch, update_pr_mergeable_state, update_pr_try_build_id,
20+
update_workflow_status, upsert_pull_request, upsert_repository,
2121
};
2222
use super::{ApprovalInfo, DelegatedPermission, MergeableState, RunId, UpsertPullRequestParams};
2323

@@ -181,13 +181,13 @@ impl PgDbClient {
181181
branch: String,
182182
commit_sha: CommitSha,
183183
parent: CommitSha,
184-
) -> anyhow::Result<i32> {
184+
) -> anyhow::Result<()> {
185185
let mut tx = self.pool.begin().await?;
186186
let build_id =
187187
create_build(&mut *tx, &pr.repository, &branch, &commit_sha, &parent).await?;
188188
update_pr_try_build_id(&mut *tx, pr.id, build_id).await?;
189189
tx.commit().await?;
190-
Ok(build_id)
190+
Ok(())
191191
}
192192

193193
pub async fn find_build(
@@ -214,14 +214,6 @@ impl PgDbClient {
214214
update_build_status(&self.pool, build.id, status).await
215215
}
216216

217-
pub async fn update_build_check_run_id(
218-
&self,
219-
build_id: i32,
220-
check_run_id: i64,
221-
) -> anyhow::Result<()> {
222-
update_build_check_run_id(&self.pool, build_id, check_run_id).await
223-
}
224-
225217
pub async fn create_workflow(
226218
&self,
227219
build: &BuildModel,

src/database/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,6 @@ pub struct BuildModel {
315315
/// The base commit SHA that this build is merged with (e.g., main branch HEAD).
316316
pub parent: String,
317317
pub created_at: DateTime<Utc>,
318-
/// The ID of the check run associated with the build.
319318
pub check_run_id: Option<i64>,
320319
}
321320

src/database/operations.rs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -946,24 +946,6 @@ pub(crate) async fn upsert_repository(
946946
.await
947947
}
948948

949-
pub(crate) async fn update_build_check_run_id(
950-
executor: impl PgExecutor<'_>,
951-
build_id: i32,
952-
check_run_id: i64,
953-
) -> anyhow::Result<()> {
954-
measure_db_query("update_build_check_run_id", || async {
955-
sqlx::query!(
956-
"UPDATE build SET check_run_id = $1 WHERE id = $2",
957-
check_run_id,
958-
build_id
959-
)
960-
.execute(executor)
961-
.await?;
962-
Ok(())
963-
})
964-
.await
965-
}
966-
967949
/// Removes the auto build associated with a PR and deletes the build record (if one exists).
968950
pub(crate) async fn delete_auto_build(
969951
executor: impl PgExecutor<'_>,

0 commit comments

Comments
 (0)