Make the jobs feature optional
Dependencies
- [2]
D4SBRY6KInitial patch - [3]
YYJ76Q7VInitial attempt at CI/CD - [4]
W4LOGDLDRemoving locks when deploying - [5]
Q45XJDUGAGPL-3.0-or-later license
Change contents
- replacement in api/src/replication.rs at line 150
let repo_ = s.locks.get(&repo).await.unwrap();tokio::task::spawn_blocking(move || {if let Some((temp, depl)) = {let pri = repo_.pristine.blocking_write();let txn = pri.arc_txn_begin()?;let channel = format!("{}_{}", repo, channel);let channel_ = {let mut txn_ = txn.write();txn_.open_or_create_channel(&channel)?};let changes = repo_.changes.clone();if cfg!(feature = "jobs") {let repo_ = s.locks.get(&repo).await.unwrap();tokio::task::spawn_blocking(move || {if let Some((temp, depl)) = {let pri = repo_.pristine.blocking_write();let txn = pri.arc_txn_begin()?;let channel = format!("{}_{}", repo, channel);let channel_ = {let mut txn_ = txn.write();txn_.open_or_create_channel(&channel)?};let changes = repo_.changes.clone(); - replacement in api/src/replication.rs at line 163
s.output_for_deployment(&txn, &channel_, &changes)?} {tokio::spawn(async move {use crate::db::jobs::dsl as jobs;let id = diesel::insert_into(jobs::jobs).values((jobs::repo.eq(repo),)).returning(jobs::id).get_result::<uuid::Uuid>(&mut s.db.get().await.unwrap()).await.unwrap();s.output_for_deployment(&txn, &channel_, &changes)?} {tokio::spawn(async move {use crate::db::jobs::dsl as jobs;let id = diesel::insert_into(jobs::jobs).values((jobs::repo.eq(repo),)).returning(jobs::id).get_result::<uuid::Uuid>(&mut s.db.get().await.unwrap()).await.unwrap(); - replacement in api/src/replication.rs at line 174
let permit = s.builders.acquire().await.unwrap();{s.deploy(id, temp, depl).await?;}std::mem::drop(permit);Ok::<_, Error>(())});}Ok::<_, Error>(())});let permit = s.builders.acquire().await.unwrap();{s.deploy(id, temp, depl).await?;}std::mem::drop(permit);Ok::<_, Error>(())});}Ok::<_, Error>(())});} - edit in api/src/main.rs at line 31
#[cfg(feature = "jobs")] - edit in api/src/main.rs at line 33
#[cfg(not(feature = "jobs"))]mod jobs {use super::*;pub fn router() -> Router<Config> {Router::new()}} - edit in api/Cargo.toml at line 6
[features]default = []jobs = []