M .drone.yml => .drone.yml +10 -10
@@ 75,7 75,7 @@ steps:
image: coresdev/stk_build_env
commands:
- cd server
- - cargo clippy --color always
+ - cargo clippy --profile release-ci --color always
environment:
SCCACHE_REGION: us-east-1
SCCACHE_BUCKET:
@@ 93,7 93,7 @@ steps:
image: coresdev/stk_build_env
commands:
- cd server
- - cargo build --release --color always
+ - cargo build --profile release-ci --color always
environment:
SCCACHE_REGION: us-east-1
SCCACHE_BUCKET:
@@ 122,7 122,7 @@ steps:
from_secret: s3_access_key
secret_key:
from_secret: s3_secret_key
- source: target/release/starkingdoms-server
+ source: target/release-ci/starkingdoms-server
target: builds/${DRONE_COMMIT_SHA}/starkingdoms-server
path_style: true
@@ 159,7 159,7 @@ steps:
image: coresdev/stk_build_env
commands:
- cd starkingdoms-backplane
- - cargo clippy --color always
+ - cargo clippy --profile release-ci --color always
environment:
SCCACHE_REGION: us-east-1
SCCACHE_BUCKET:
@@ 177,7 177,7 @@ steps:
image: coresdev/stk_build_env
commands:
- cd starkingdoms-backplane
- - cargo build --release --color always
+ - cargo build --profile release-ci --color always
environment:
SCCACHE_REGION: us-east-1
SCCACHE_BUCKET:
@@ 206,7 206,7 @@ steps:
from_secret: s3_access_key
secret_key:
from_secret: s3_secret_key
- source: target/release/starkingdoms-backplane
+ source: target/release-ci/starkingdoms-backplane
target: builds/${DRONE_COMMIT_SHA}/starkingdoms-backplane
path_style: true
@@ 263,7 263,7 @@ steps:
commands:
- echo "$VAULT_PWD" > vault_password.txt
- cat vault_password.txt
- - ansible-playbook ansible/deploy.yml -i ansible/environments/unstable.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
+ - ansible-playbook ansible/deploy.yml -i ansible/environments/unstable.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release-ci/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
---
kind: pipeline
@@ 289,7 289,7 @@ steps:
commands:
- echo "$VAULT_PWD" > vault_password.txt
- cat vault_password.txt
- - ansible-playbook ansible/deploy_backplane.yml -i ansible/global/backplane.yml --vault-password-file vault_password.txt -e "backplane_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-backplane/target/release/starkingdoms-backplane"
+ - ansible-playbook ansible/deploy_backplane.yml -i ansible/global/backplane.yml --vault-password-file vault_password.txt -e "backplane_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-backplane/target/release-ci/starkingdoms-backplane"
---
kind: pipeline
type: docker
@@ 314,7 314,7 @@ steps:
commands:
- echo "$VAULT_PWD" > vault_password.txt
- cat vault_password.txt
- - ansible-playbook ansible/deploy.yml -i ansible/environments/beta.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
+ - ansible-playbook ansible/deploy.yml -i ansible/environments/beta.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release-ci/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
---
kind: pipeline
type: docker
@@ 339,5 339,5 @@ steps:
commands:
- echo "$VAULT_PWD" > vault_password.txt
- cat vault_password.txt
- - ansible-playbook ansible/deploy.yml -i ansible/environments/stable.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
+ - ansible-playbook ansible/deploy.yml -i ansible/environments/stable.yml --vault-password-file vault_password.txt -e "server_binary_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/starkingdoms-server/target/release-ci/starkingdoms-server client_package_url=$MINIO_BASE/$MINIO_BUCKET/builds/${DRONE_COMMIT_SHA}/client.tar.xz/starkingdoms-client/dist/client.tar.xz"
M Cargo.lock => Cargo.lock +21 -0
@@ 3617,6 3617,7 @@ dependencies = [
"serde_json",
"sha2",
"starkingdoms-common",
+ "tikv-jemallocator",
"tracing-subscriber",
]
@@ 3725,6 3726,26 @@ dependencies = [
]
[[package]]
+name = "tikv-jemalloc-sys"
+version = "0.5.4+5.3.0-patched"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "tikv-jemallocator"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
+dependencies = [
+ "libc",
+ "tikv-jemalloc-sys",
+]
+
+[[package]]
name = "time"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
M Cargo.toml => Cargo.toml +6 -1
@@ 9,4 9,9 @@ members = [
resolver = "2"
[profile.dev.package."*"]
-opt-level = 3>
\ No newline at end of file
+opt-level = 3
+
+[profile.release-ci]
+inherits = "release"
+codegen-units = 1
+lto = "fat"<
\ No newline at end of file
M server/Cargo.toml => server/Cargo.toml +1 -0
@@ 17,6 17,7 @@ sha2 = "0.10"
hmac = "0.12"
hex = "0.4"
bevy_tungstenite_stk = { version = "0.1", path = "../bevy_tungstenite_stk" }
+tikv-jemallocator = "0.5.0"
[features]
default = []
M server/src/main.rs => server/src/main.rs +34 -12
@@ 16,15 16,15 @@
#![allow(clippy::type_complexity)] // bevy :(
#![allow(clippy::too_many_arguments)] // bevy :(
#![allow(clippy::only_used_in_recursion)] // todo: remove this
+#[global_allocator]
+static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
use std::net::IpAddr;
use crate::mathutil::rot2d;
-use bevy::log::Level;
-use bevy::log::LogPlugin;
use bevy::math::{vec2, vec3};
use bevy::{
- app::ScheduleRunnerPlugin, ecs::event::ManualEventReader, prelude::*, time::TimePlugin,
+ app::{ScheduleRunnerPlugin, PluginGroupBuilder}, ecs::event::ManualEventReader, prelude::*, time::TimePlugin,
};
use bevy_rapier2d::prelude::*;
use bevy_tungstenite_stk::{StkTungsteniteServerConfig, StkTungsteniteServerPlugin, WsEvent};
@@ 67,6 67,36 @@ const LANDING_THRUSTER_MASS: f32 = 0.9;
// maybe make this only cargo modules later
const FREE_MODULE_CAP: usize = 30;
+struct StkPluginGroup;
+
+#[cfg(debug_assertions)]
+impl PluginGroup for StkPluginGroup {
+ fn build(self) -> PluginGroupBuilder {
+ PluginGroupBuilder::start::<Self>()
+ .add(TaskPoolPlugin::default())
+ .add(TypeRegistrationPlugin)
+ .add(FrameCountPlugin)
+ .add(TimePlugin)
+ .add(ScheduleRunnerPlugin::run_loop(Duration::from_millis(1)))
+ .add(bevy::log::LogPlugin {
+ level: bevy::log::Level::DEBUG,
+ filter: "wgpu=error,bevy_render=info,bevy_ecs=trace".to_string(),
+ })
+ }
+}
+
+#[cfg(not(debug_assertions))]
+impl PluginGroup for StkPluginGroup {
+ fn build(self) -> PluginGroupBuilder {
+ PluginGroupBuilder::start::<Self>()
+ .add(TaskPoolPlugin::default())
+ .add(TypeRegistrationPlugin)
+ .add(FrameCountPlugin)
+ .add(TimePlugin)
+ .add(ScheduleRunnerPlugin::run_loop(Duration::from_millis(1)))
+ }
+}
+
fn main() {
// read the key in
let key = std::fs::read_to_string("/etc/starkingdoms/app_key").unwrap();
@@ 79,15 109,7 @@ fn main() {
addr: IpAddr::from_str("0.0.0.0").unwrap(),
port: 3000,
})
- .add_plugins(TaskPoolPlugin::default())
- .add_plugins(TypeRegistrationPlugin)
- .add_plugins(FrameCountPlugin)
- .add_plugins(TimePlugin)
- .add_plugins(ScheduleRunnerPlugin::run_loop(Duration::from_millis(1)))
- .add_plugins(LogPlugin {
- level: Level::DEBUG,
- filter: "wgpu=error,bevy_render=info,bevy_ecs=trace".to_string(),
- })
+ .add_plugins(StkPluginGroup)
.insert_resource(RapierConfiguration {
gravity: Vect { x: 0.0, y: 0.0 },
..Default::default()