Aller au contenu principal

Compiler et tester

remarque

Nécessite une chaîne Rust stable récente (le crate utilise l'édition 2024). Docker est requis pour l'image, cross pour les compilations croisées Linux et Windows.

Compiler​

git clone https://github.com/loch-sh/s3.git && cd s3
cargo build --release
./target/release/s3

La compilation produit deux binaires : s3 (le serveur) et loch-s3 (la CLI des utilisateurs).

Tester​

cargo test # tests unitaires et d'intégration
cargo test test_name # un seul test

Les tests d'intégration de tests/integration.rs démarrent un vrai serveur sur un port aléatoire et l'appellent avec reqwest.

Compilations croisées​

CommandeCible
make linux-amd64x86_64-unknown-linux-musl
make linux-arm64aarch64-unknown-linux-musl
make windows-amd64x86_64-pc-windows-gnu
make macos-amd64x86_64-apple-darwin (sur macOS)
make macos-arm64aarch64-apple-darwin (sur macOS)
make allToutes les cibles ci-dessus

Le binaire du serveur est déposé dans dist/<platform>/.

Image Docker​

make docker # image pour l'architecture locale
make docker-multiplatform # amd64 + arm64, sans push

Releases​

La CI lance les tests sur chaque branche et chaque tag. Un tag compile les archives, publie la release GitHub et pousse l'image multi-arch sur ghcr.io/loch-sh/s3.