~starkingdoms/starkingdoms

9973b917e1c45509e8ca2f68986cf9a845d267e2 — core 1 year, 11 months ago 36e42d0
stupidly optimized server builds
5 files changed, 72 insertions(+), 23 deletions(-)

M .drone.yml
M Cargo.lock
M Cargo.toml
M server/Cargo.toml
M server/src/main.rs
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()