From 8bb1977025777a5abd70bdfdec7af26d8ce98207 Mon Sep 17 00:00:00 2001 From: Paul Makles <paulmakles@gmail.com> Date: Sun, 30 Aug 2020 15:07:45 +0100 Subject: [PATCH] Add Docker and GitLab CI. --- .gitlab-ci.yml | 20 ++++++ Cargo.lock | 155 ++++++++++++++++------------------------ Cargo.toml | 30 ++++---- Dockerfile | 16 +++++ src/notifications/ws.rs | 2 +- 5 files changed, 113 insertions(+), 110 deletions(-) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..7960cd0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,20 @@ +stages: + - build + +# Rocket does not currently compile on stable Rust. +# Once it does, we can uncomment this, and instead +# put `allow-failure: true` on the nightly build. +# +# rust-latest: +# stage: build +# image: rust:latest +# script: +# - cargo build --verbose +# - cargo test --verbose + +rust-nightly: + stage: build + image: rustlang/rust:nightly + script: + - cargo build --verbose + - cargo test --verbose diff --git a/Cargo.lock b/Cargo.lock index 35b6e3a..1fafbc2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,15 +15,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" -[[package]] -name = "ahash" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" -dependencies = [ - "const-random", -] - [[package]] name = "ahash" version = "0.3.8" @@ -174,15 +165,14 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "bcrypt" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f02d7d008a57bcb2251ba115b803934e02315edbde9a861c88713493e381b63" +checksum = "e2cab630912253fb9dc92c0e2fabd0a7b51f5a5a4007177cfa31e517015b7204" dependencies = [ "base64 0.12.3", "blowfish", "byteorder", - "lazy_static", - "rand 0.7.3", + "getrandom", ] [[package]] @@ -206,16 +196,16 @@ dependencies = [ "block-padding", "byte-tools", "byteorder", - "generic-array", + "generic-array 0.12.3", ] [[package]] -name = "block-cipher-trait" -version = "0.6.2" +name = "block-cipher" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" +checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" dependencies = [ - "generic-array", + "generic-array 0.14.4", ] [[package]] @@ -243,20 +233,20 @@ dependencies = [ [[package]] name = "blowfish" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeb80d00f2688459b8542068abd974cfb101e7a82182414a99b5026c0d85cc3" +checksum = "0f06850ba969bc59388b2cc0a4f186fc6d9d37208863b15b84ae3866ac90ac06" dependencies = [ - "block-cipher-trait", + "block-cipher", "byteorder", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] name = "bson" -version = "1.1.0-beta" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53f55e2f3e8b57182771db30a3e32d0aeaaa5aebbe18ce81b2d75e69b922ec" +checksum = "c11f16001d679cb13d14b2c93c7d0fa13bb484a87c34a6c4c39707ad936499b5" dependencies = [ "base64 0.12.3", "chrono", @@ -322,9 +312,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "chrono" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" dependencies = [ "js-sys", "num-integer", @@ -351,26 +341,6 @@ dependencies = [ "cache-padded", ] -[[package]] -name = "const-random" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -dependencies = [ - "const-random-macro", - "proc-macro-hack", -] - -[[package]] -name = "const-random-macro" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -dependencies = [ - "getrandom", - "proc-macro-hack", -] - [[package]] name = "cookie" version = "0.11.3" @@ -414,7 +384,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" dependencies = [ - "generic-array", + "generic-array 0.12.3", "subtle", ] @@ -467,7 +437,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "generic-array", + "generic-array 0.12.3", ] [[package]] @@ -758,6 +728,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check 0.9.2", +] + [[package]] name = "getrandom" version = "0.1.14" @@ -802,30 +782,11 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -dependencies = [ - "ahash 0.2.18", - "autocfg 0.1.7", -] - -[[package]] -name = "hashbrown" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf" -dependencies = [ - "ahash 0.3.8", - "autocfg 1.0.0", -] - -[[package]] -name = "hashbrown" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ + "ahash", "autocfg 1.0.0", ] @@ -995,7 +956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7" dependencies = [ "autocfg 1.0.0", - "hashbrown 0.8.1", + "hashbrown", ] [[package]] @@ -1138,11 +1099,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c456c123957de3a220cd03786e0d86aa542a88b46029973b542f426da6ef34" +checksum = "111b945ac72ec09eb7bc62a0fbdc3cc6e80555a7245f52a69d3921a75b53b153" dependencies = [ - "hashbrown 0.6.3", + "hashbrown", ] [[package]] @@ -1174,7 +1135,7 @@ checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8" dependencies = [ "block-buffer", "digest", - "opaque-debug", + "opaque-debug 0.2.3", ] [[package]] @@ -1262,9 +1223,9 @@ dependencies = [ [[package]] name = "mongodb" -version = "1.1.0-beta" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78f8c23edb98f47884f7f419c7dfce7aa5a5334d27983c86f26847b3b6225552" +checksum = "f8cb54f85e6380c8cfe130a55a85cfc2584e8317f4bb8bda464d367fd4f24957" dependencies = [ "async-std", "async-trait", @@ -1383,9 +1344,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" +checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066" dependencies = [ "derivative", "num_enum_derive", @@ -1393,9 +1354,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" +checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -1411,9 +1372,9 @@ checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" [[package]] name = "once_cell" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" [[package]] name = "opaque-debug" @@ -1421,6 +1382,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + [[package]] name = "openssl" version = "0.10.30" @@ -1861,9 +1828,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12427a5577082c24419c9c417db35cfeb65962efc7675bb6b0d5f1f9d315bfe6" +checksum = "e9eaa17ac5d7b838b7503d118fa16ad88f440498bf9ffe5424e621f93190d61e" dependencies = [ "base64 0.12.3", "bytes 0.5.6", @@ -1914,7 +1881,7 @@ dependencies = [ "chrono", "dotenv", "env_logger", - "hashbrown 0.7.2", + "hashbrown", "lazy_static", "log 0.4.11", "lru", @@ -2163,18 +2130,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -2235,7 +2202,7 @@ dependencies = [ "block-buffer", "digest", "fake-simd", - "opaque-debug", + "opaque-debug 0.2.3", ] [[package]] @@ -2253,7 +2220,7 @@ dependencies = [ "block-buffer", "digest", "fake-simd", - "opaque-debug", + "opaque-debug 0.2.3", ] [[package]] @@ -2714,9 +2681,9 @@ checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" [[package]] name = "ulid" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ea3ad32d4895ee0681033bd93f16939e186dac72259fa5efc158703f8be4bc" +checksum = "cacfb60872052779608509dcb3dbc8b9d955f5686d71e7ad3173029dc482d07d" dependencies = [ "chrono", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index a9b2247..664e23b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,26 +7,26 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -mongodb = { version = "1.1.0-beta", default-features = false, features = ["sync"] } # FIXME: rewrite database with async API -rocket = { version = "0.4.4", default-features = false } -once_cell = "1.3.1" +mongodb = { version = "1.1.0", default-features = false, features = ["sync"] } # FIXME: rewrite database with async API +rocket = { version = "0.4.5", default-features = false } +once_cell = "1.4.1" dotenv = "0.15.0" -ulid = "0.3.1" -serde = { version = "1.0", features = ["derive"] } -rocket_contrib = "0.4.4" -validator = "0.10.0" -bcrypt = "0.7.0" -chrono = "0.4.11" +ulid = "0.4.0" +serde = { version = "1.0.115", features = ["derive"] } +rocket_contrib = "0.4.5" +validator = "0.10.1" +bcrypt = "0.8.2" +chrono = "0.4.15" rand = "0.7.3" -time = "0.2.9" -reqwest = { version = "0.10.4", features = ["blocking", "json"] } -num_enum = "0.4.3" +time = "0.2.16" +reqwest = { version = "0.10.8", features = ["blocking", "json"] } +num_enum = "0.5.1" ws = "0.9.1" -hashbrown = "0.7.1" -serde_json = "1.0.51" +hashbrown = "0.8.2" +serde_json = "1.0.57" rocket_cors = "0.5.2" bitfield = "0.13.2" -lru = "0.5.3" +lru = "0.6.0" lazy_static = "1.4.0" log = "0.4.11" env_logger = "0.7.1" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fe32d3d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +# Build Stage +FROM ekidd/rust-musl-builder:nightly-2020-08-26 AS builder +WORKDIR /home/rust/src + +RUN USER=root cargo new --bin revolt +WORKDIR ./revolt +COPY Cargo.toml Cargo.lock ./ +COPY src ./src +RUN cargo build --release + +# Bundle Stage +FROM scratch +COPY --from=builder /home/rust/src/revolt/target/x86_64-unknown-linux-musl/release/revolt . +EXPOSE 8000 +EXPOSE 9000 +CMD ["./revolt"] diff --git a/src/notifications/ws.rs b/src/notifications/ws.rs index 93e1916..b3dd802 100644 --- a/src/notifications/ws.rs +++ b/src/notifications/ws.rs @@ -125,7 +125,7 @@ pub fn launch_server() { state::init(); listen( - env::var("WS_HOST").unwrap_or("0.0.0.0:9999".to_string()), + env::var("WS_HOST").unwrap_or("0.0.0.0:9000".to_string()), |sender| Server { sender, user_id: None, -- GitLab