Skip to content

Commit 6890408

Browse files
committed
fix(ci): address fmt and docker build regressions
1 parent d79f4d4 commit 6890408

11 files changed

Lines changed: 49 additions & 96 deletions

File tree

Containerfile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
FROM docker.io/library/rust:trixie AS chef
77
WORKDIR /tmp
88
RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
9-
RUN cargo binstall --no-confirm cargo-chef cargo-nextest
9+
RUN cargo binstall --no-confirm --locked cargo-chef cargo-nextest
1010

1111
## Tester Image
1212
FROM docker.io/library/rust:slim-trixie AS tester
1313
WORKDIR /tmp
1414

1515
RUN apt-get update; apt-get install -y curl sqlite3; apt-get autoclean
1616
RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
17-
RUN cargo binstall --no-confirm cargo-nextest
17+
RUN cargo binstall --no-confirm --locked cargo-nextest
1818

1919
COPY ./share/ /app/share/torrust
2020
RUN mkdir -p /app/share/torrust/default/database/; \
@@ -72,7 +72,9 @@ RUN cargo nextest run --workspace-remap /test/src/ --extract-to /test/src/ --no-
7272
RUN cargo nextest run --workspace-remap /test/src/ --target-dir-remap /test/src/target/ --cargo-metadata /test/src/target/nextest/cargo-metadata.json --binaries-metadata /test/src/target/nextest/binaries-metadata.json
7373

7474
RUN mkdir -p /app/bin/; cp -l /test/src/target/debug/torrust-tracker /app/bin/torrust-tracker
75-
RUN mkdir /app/lib/; cp -l $(realpath $(ldd /app/bin/torrust-tracker | grep "libz\.so\.1" | awk '{print $3}')) /app/lib/libz.so.1
75+
RUN mkdir -p /app/lib/; \
76+
libz_path="$(ldd /app/bin/torrust-tracker | awk '/libz\.so\.1/ { print $3; exit }')"; \
77+
if [ -n "$libz_path" ]; then cp -l "$(realpath "$libz_path")" /app/lib/libz.so.1; fi
7678
RUN chown -R root:root /app; chmod -R u=rw,go=r,a+X /app; chmod -R a+x /app/bin
7779

7880
# Extract and Test (release)
@@ -86,7 +88,9 @@ RUN cargo nextest run --workspace-remap /test/src/ --extract-to /test/src/ --no-
8688
RUN cargo nextest run --workspace-remap /test/src/ --target-dir-remap /test/src/target/ --cargo-metadata /test/src/target/nextest/cargo-metadata.json --binaries-metadata /test/src/target/nextest/binaries-metadata.json
8789

8890
RUN mkdir -p /app/bin/; cp -l /test/src/target/release/torrust-tracker /app/bin/torrust-tracker; cp -l /test/src/target/release/http_health_check /app/bin/http_health_check
89-
RUN mkdir -p /app/lib/; cp -l $(realpath $(ldd /app/bin/torrust-tracker | grep "libz\.so\.1" | awk '{print $3}')) /app/lib/libz.so.1
91+
RUN mkdir -p /app/lib/; \
92+
libz_path="$(ldd /app/bin/torrust-tracker | awk '/libz\.so\.1/ { print $3; exit }')"; \
93+
if [ -n "$libz_path" ]; then cp -l "$(realpath "$libz_path")" /app/lib/libz.so.1; fi
9094
RUN chown -R root:root /app; chmod -R u=rw,go=r,a+X /app; chmod -R a+x /app/bin
9195

9296

packages/configuration/src/v2_0_0/database.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,6 @@ mod tests {
9595

9696
database.mask_secrets();
9797

98-
assert_eq!(
99-
database.path,
100-
"postgresql://postgres:***@localhost:5432/torrust".to_string()
101-
);
98+
assert_eq!(database.path, "postgresql://postgres:***@localhost:5432/torrust".to_string());
10299
}
103100
}

packages/tracker-core/src/authentication/handler.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,6 @@ impl KeysHandler {
226226
) -> Result<PeerKey, databases::error::Error> {
227227
let peer_key = PeerKey { key, valid_until };
228228

229-
// code-review: should we return a friendly error instead of the DB
230-
// constrain error when the key already exist? For now, it's returning
231-
// the specif error for each DB driver when a UNIQUE constrain fails.
232229
self.db_key_repository.add(&peer_key).await?;
233230

234231
self.in_memory_key_repository.insert(&peer_key).await;

packages/tracker-core/src/databases/driver/mod.rs

Lines changed: 11 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -188,25 +188,15 @@ pub(crate) mod tests {
188188
pub async fn it_should_save_and_load_the_global_number_of_downloads(driver: &Persistence) {
189189
driver.torrent_metrics_store().save_global_downloads(1).await.unwrap();
190190

191-
let number_of_downloads = driver
192-
.torrent_metrics_store()
193-
.load_global_downloads()
194-
.await
195-
.unwrap()
196-
.unwrap();
191+
let number_of_downloads = driver.torrent_metrics_store().load_global_downloads().await.unwrap().unwrap();
197192

198193
assert_eq!(number_of_downloads, 1);
199194
}
200195

201196
pub async fn it_should_load_the_global_number_of_downloads(driver: &Persistence) {
202197
driver.torrent_metrics_store().save_global_downloads(1).await.unwrap();
203198

204-
let number_of_downloads = driver
205-
.torrent_metrics_store()
206-
.load_global_downloads()
207-
.await
208-
.unwrap()
209-
.unwrap();
199+
let number_of_downloads = driver.torrent_metrics_store().load_global_downloads().await.unwrap().unwrap();
210200

211201
assert_eq!(number_of_downloads, 1);
212202
}
@@ -216,12 +206,7 @@ pub(crate) mod tests {
216206

217207
driver.torrent_metrics_store().increase_global_downloads().await.unwrap();
218208

219-
let number_of_downloads = driver
220-
.torrent_metrics_store()
221-
.load_global_downloads()
222-
.await
223-
.unwrap()
224-
.unwrap();
209+
let number_of_downloads = driver.torrent_metrics_store().load_global_downloads().await.unwrap().unwrap();
225210

226211
assert_eq!(number_of_downloads, 2);
227212
}
@@ -250,11 +235,7 @@ pub(crate) mod tests {
250235
Some(large_value)
251236
);
252237
assert_eq!(
253-
driver
254-
.torrent_metrics_store()
255-
.load_global_downloads()
256-
.await
257-
.unwrap(),
238+
driver.torrent_metrics_store().load_global_downloads().await.unwrap(),
258239
Some(large_value)
259240
);
260241
}
@@ -312,11 +293,7 @@ pub(crate) mod tests {
312293
let peer_key = generate_permanent_key();
313294
driver.auth_key_store().add_key_to_keys(&peer_key).await.unwrap();
314295

315-
driver
316-
.auth_key_store()
317-
.remove_key_from_keys(&peer_key.key())
318-
.await
319-
.unwrap();
296+
driver.auth_key_store().remove_key_from_keys(&peer_key.key()).await.unwrap();
320297

321298
assert!(driver
322299
.auth_key_store()
@@ -330,11 +307,7 @@ pub(crate) mod tests {
330307
let peer_key = generate_expiring_key(Duration::from_secs(120));
331308
driver.auth_key_store().add_key_to_keys(&peer_key).await.unwrap();
332309

333-
driver
334-
.auth_key_store()
335-
.remove_key_from_keys(&peer_key.key())
336-
.await
337-
.unwrap();
310+
driver.auth_key_store().remove_key_from_keys(&peer_key.key()).await.unwrap();
338311

339312
assert!(driver
340313
.auth_key_store()
@@ -351,11 +324,7 @@ pub(crate) mod tests {
351324

352325
pub async fn it_should_load_the_whitelist(driver: &Persistence) {
353326
let infohash = random_info_hash();
354-
driver
355-
.whitelist_store()
356-
.add_info_hash_to_whitelist(infohash)
357-
.await
358-
.unwrap();
327+
driver.whitelist_store().add_info_hash_to_whitelist(infohash).await.unwrap();
359328

360329
let whitelist = driver.whitelist_store().load_whitelist().await.unwrap();
361330

@@ -365,11 +334,7 @@ pub(crate) mod tests {
365334
pub async fn it_should_add_and_get_infohashes(driver: &Persistence) {
366335
let infohash = random_info_hash();
367336

368-
driver
369-
.whitelist_store()
370-
.add_info_hash_to_whitelist(infohash)
371-
.await
372-
.unwrap();
337+
driver.whitelist_store().add_info_hash_to_whitelist(infohash).await.unwrap();
373338

374339
let stored_infohash = driver
375340
.whitelist_store()
@@ -383,11 +348,7 @@ pub(crate) mod tests {
383348

384349
pub async fn it_should_remove_an_infohash_from_the_whitelist(driver: &Persistence) {
385350
let infohash = random_info_hash();
386-
driver
387-
.whitelist_store()
388-
.add_info_hash_to_whitelist(infohash)
389-
.await
390-
.unwrap();
351+
driver.whitelist_store().add_info_hash_to_whitelist(infohash).await.unwrap();
391352

392353
driver
393354
.whitelist_store()
@@ -406,15 +367,8 @@ pub(crate) mod tests {
406367
pub async fn it_should_fail_trying_to_add_the_same_infohash_twice(driver: &Persistence) {
407368
let infohash = random_info_hash();
408369

409-
driver
410-
.whitelist_store()
411-
.add_info_hash_to_whitelist(infohash)
412-
.await
413-
.unwrap();
414-
let result = driver
415-
.whitelist_store()
416-
.add_info_hash_to_whitelist(infohash)
417-
.await;
370+
driver.whitelist_store().add_info_hash_to_whitelist(infohash).await.unwrap();
371+
let result = driver.whitelist_store().add_info_hash_to_whitelist(infohash).await;
418372

419373
assert!(result.is_err());
420374
}

packages/tracker-core/src/databases/driver/mysql.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -514,11 +514,7 @@ mod tests {
514514
config.database.driver = torrust_tracker_configuration::Driver::MySQL;
515515
config.database.path = format!(
516516
"mysql://{}:{}@{}:{}/{}",
517-
mysql_configuration.db_user,
518-
mysql_configuration.db_root_password,
519-
host,
520-
port,
521-
mysql_configuration.database
517+
mysql_configuration.db_user, mysql_configuration.db_root_password, host, port, mysql_configuration.database
522518
);
523519

524520
config

packages/tracker-core/src/databases/driver/postgres.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,8 @@ mod tests {
452452
self,
453453
config: &PostgresConfiguration,
454454
) -> Result<RunningPostgresContainer, Box<dyn std::error::Error + 'static>> {
455-
let image_name = std::env::var("TORRUST_TRACKER_CORE_POSTGRES_DRIVER_IMAGE").unwrap_or_else(|_| "postgres".to_string());
455+
let image_name =
456+
std::env::var("TORRUST_TRACKER_CORE_POSTGRES_DRIVER_IMAGE").unwrap_or_else(|_| "postgres".to_string());
456457
let image_tag = std::env::var("TORRUST_TRACKER_CORE_POSTGRES_DRIVER_IMAGE_TAG").unwrap_or_else(|_| "16".to_string());
457458

458459
let container = GenericImage::new(image_name, image_tag)
@@ -517,11 +518,7 @@ mod tests {
517518
config.database.driver = torrust_tracker_configuration::Driver::PostgreSQL;
518519
config.database.path = format!(
519520
"postgresql://{}:{}@{}:{}/{}",
520-
pg_configuration.db_user,
521-
pg_configuration.db_password,
522-
host,
523-
port,
524-
pg_configuration.database
521+
pg_configuration.db_user, pg_configuration.db_password, host, port, pg_configuration.database
525522
);
526523

527524
config

packages/tracker-core/src/databases/error.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,22 @@ mod tests {
178178

179179
#[test]
180180
fn it_should_build_a_database_error_from_a_sqlx_io_error() {
181-
let err: Error = (sqlx::Error::Io(io::Error::from(io::ErrorKind::ConnectionRefused)), Driver::MySQL).into();
181+
let err: Error = (
182+
sqlx::Error::Io(io::Error::from(io::ErrorKind::ConnectionRefused)),
183+
Driver::MySQL,
184+
)
185+
.into();
182186

183187
assert!(matches!(err, Error::ConnectionError { .. }));
184188
}
185189

186190
#[test]
187191
fn it_should_build_a_database_error_from_a_dyn_connection_error() {
188-
let err: Error = ((Arc::new(io::Error::from(io::ErrorKind::TimedOut)) as DynError), Driver::PostgreSQL).into();
192+
let err: Error = (
193+
(Arc::new(io::Error::from(io::ErrorKind::TimedOut)) as DynError),
194+
Driver::PostgreSQL,
195+
)
196+
.into();
189197

190198
assert!(matches!(err, Error::ConnectionError { .. }));
191199
}

packages/tracker-core/src/statistics/persisted/downloads.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,7 @@ impl DatabaseDownloadsMetricRepository {
101101
/// # Errors
102102
///
103103
/// Returns an [`Error`] if the database operation fails.
104-
pub(crate) async fn save_torrent_downloads(
105-
&self,
106-
info_hash: &InfoHash,
107-
downloaded: NumberOfDownloads,
108-
) -> Result<(), Error> {
104+
pub(crate) async fn save_torrent_downloads(&self, info_hash: &InfoHash, downloaded: NumberOfDownloads) -> Result<(), Error> {
109105
self.database.save_torrent_downloads(info_hash, downloaded).await
110106
}
111107

packages/tracker-core/src/torrent/manager.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,7 @@ impl TorrentsManager {
7171
/// Returns a `databases::error::Error` if unable to load the persistent
7272
/// torrent data.
7373
pub async fn load_torrents_from_database(&self) -> Result<(), databases::error::Error> {
74-
let persistent_torrents = self
75-
.db_downloads_metric_repository
76-
.load_all_torrents_downloads()
77-
.await?;
74+
let persistent_torrents = self.db_downloads_metric_repository.load_all_torrents_downloads().await?;
7875

7976
self.in_memory_torrent_repository.import_persistent(&persistent_torrents);
8077

packages/tracker-core/src/whitelist/manager.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,12 @@ mod tests {
144144
whitelist_manager.add_torrent_to_whitelist(&info_hash).await.unwrap();
145145

146146
assert!(services.in_memory_whitelist.contains(&info_hash).await);
147-
assert!(services.database_whitelist.load_from_database().await.unwrap().contains(&info_hash));
147+
assert!(services
148+
.database_whitelist
149+
.load_from_database()
150+
.await
151+
.unwrap()
152+
.contains(&info_hash));
148153
}
149154

150155
#[tokio::test]
@@ -158,7 +163,12 @@ mod tests {
158163
whitelist_manager.remove_torrent_from_whitelist(&info_hash).await.unwrap();
159164

160165
assert!(!services.in_memory_whitelist.contains(&info_hash).await);
161-
assert!(!services.database_whitelist.load_from_database().await.unwrap().contains(&info_hash));
166+
assert!(!services
167+
.database_whitelist
168+
.load_from_database()
169+
.await
170+
.unwrap()
171+
.contains(&info_hash));
162172
}
163173

164174
mod persistence {

0 commit comments

Comments
 (0)