Commit Graph

89 Commits

Author SHA1 Message Date
Marcel Märtens
7c2cf9f707 only build once, dont build multiple targets. save time
Profiles:
(all are build, all are release, all are --no-default-features --features="default-publish" )

A) -p veloren-voxygen AND -p veloren-server-cli
B) NONE AND -p veloren-server-cli
C) NONE
D) NONE but server-cli/Cargo.toml has a default-publish feature

Timings
A)
> time cargo build -p veloren-voxygen --release --no-default-features --features default-publish
Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
    Finished release [optimized] target(s) in 16m 19s
cargo build -p veloren-voxygen --release --no-default-features --features   3091.78s user 71.80s system 322% cpu 16:19.44 total
> time cargo build --release -p veloren-server-cli
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 6m 06s
cargo build --release -p veloren-server-cli  1024.29s user 18.42s system 284% cpu 6:06.62 total

B)
> time cargo build --release --no-default-features --features default-publish
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 17m 10s
cargo build --release --no-default-features --features default-publish  4415.58s user 91.10s system 437% cpu 17:10.66 total
> time cargo build --release -p veloren-server-cli
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 6m 08s
cargo build --release -p veloren-server-cli  1123.93s user 23.01s system 311% cpu 6:08.14 total

C)
> time cargo build --release --no-default-features --features default-publish
   Compiling prometheus-hyper v0.1.2
   Compiling authc v1.0.0 (https://gitlab.com/veloren/auth.git?rev=fb3dcbc4962b367253f8f2f92760ef44d2679c9a#fb3dcbc4)
   Compiling veloren-common-net v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/net)
   Compiling veloren-plugin-api v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/api)
   Compiling veloren-voxygen-anim v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim)
   Compiling veloren-plugin-rt v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/rt)
   Compiling veloren-common-systems v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/systems)
   Compiling veloren-common-state v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/state)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 16m 41s
cargo build --release --no-default-features --features default-publish  4349.71s user 90.02s system 443% cpu 16:41.58 total

D)
> time cargo build --release --no-default-features --features default-publish
   Compiling prometheus-hyper v0.1.2
   Compiling authc v1.0.0 (https://gitlab.com/veloren/auth.git?rev=fb3dcbc4962b367253f8f2f92760ef44d2679c9a#fb3dcbc4)
   Compiling veloren-common-net v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/net)
   Compiling veloren-plugin-api v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/api)
   Compiling veloren-voxygen-anim v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim)
   Compiling veloren-plugin-rt v0.1.0 (/mnt/nfs/marcel/Entw/Rust/veloren/plugin/rt)
   Compiling veloren-common-state v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/state)
   Compiling veloren-common-systems v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/common/systems)
   Compiling veloren-world v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/world)
   Compiling veloren-client v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/client)
   Compiling veloren-voxygen-egui v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui)
   Compiling refinery v0.5.0 (https://gitlab.com/veloren/refinery.git?rev=8ecf4b4772d791e6c8c0a3f9b66a7530fad1af3e#8ecf4b47)
   Compiling veloren-server v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server)
   Compiling gfx-auxil v0.9.0 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling gfx-backend-gl v0.8.1 (https://github.com/gfx-rs/gfx?rev=27a1dae3796d33d23812f2bb8c7e3b5aea18b521#27a1dae3)
   Compiling wgpu v0.8.0 (https://github.com/gfx-rs/wgpu.git?rev=a92b8549a8e2cb9dac781bafc5ed32828f3caf46#a92b8549)
   Compiling wgpu-profiler v0.4.0 (https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8#b156eb14)
   Compiling veloren-voxygen-egui-dyn v0.9.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/egui/dyn)
   Compiling veloren-voxygen-anim-dyn v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/voxygen/anim/dyn)
   Compiling veloren-server-cli v0.10.0 (/mnt/nfs/marcel/Entw/Rust/veloren/server-cli)
    Finished release [optimized] target(s) in 17m 30s
cargo build --release --no-default-features --features default-publish  4462.34s user 92.17s system 433% cpu 17:31.00 total

Hashes
A)
veloren-voxygen: e9de69144b4d459dc0da2775b2b87ac9
veloren-server-cli: 8c131c1b1daaa6efd0f83d95d9b5dad9
B)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: 8c131c1b1daaa6efd0f83d95d9b5dad9
C)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: 3bf56d0d0a76191a578ed5e71389f512
D)
veloren-voxygen: 415e14ec1c14a6a559d2908b843d88d5
veloren-server-cli: c9dc4fb0bfcbd831150eebac788e2f71

Binary Sizes:
A)
veloren-voxygen: 156667288
veloren-server-cli: 85136736
B)
veloren-voxygen: 162860552
veloren-server-cli: 85136736
C)
veloren-voxygen: 162860552
veloren-server-cli: 95597304
D)
veloren-voxygen: 162860552
veloren-server-cli: 95586360

Total Cache Size:
A) 4.1G
B) 5G
C) 4.1G
D) 4.1G
2021-07-15 10:56:32 +02:00
Marcel Märtens
b3983c5451 no longer incremental builds in CI 2021-07-14 21:55:12 +02:00
Marcel Märtens
07c044f2e5 extract relevant code in a script in order to remove duplicate coding with docker-ci repo
export VELOREN_ASSETS without pwd to keep caching working
2021-07-14 20:57:08 +02:00
Marcel Märtens
88fb4deebf allow optinal releases on master if its no merge_request to allow it on forks, also adjust the workflow rules to run on release branches
ignore Gitlab user also for releases, as all protected branches are synced
2021-07-09 19:06:39 +02:00
Marcel Märtens
6efe3523d5 test on merge event rather than branch name master as a fork could also have a branch master 2021-07-09 11:19:22 +02:00
Marcel Märtens
fcc6bb819b make sure that all CI jobs run always and not only in branch 2021-07-09 11:19:20 +02:00
juliancoffee
33a37a8857 Run asset_tweak tests separately
+ Make parse_all_ron_files_to_value panic-friendly. Remove unwraps
to unwrap_or_else with panic message.
2021-07-04 19:31:57 +03:00
Avi Weinstock
957ba5d218 Use new dungeons in dungeon_voxel_export, remove old dungeon sampling function, and add more of world/examples to CI. 2021-06-27 15:35:43 -04:00
Ben Wallis
da319e71ec Added default-publish feature and updated build scripts. 2021-06-26 17:48:48 +01:00
Marcel
875b26a93a Merge branch 'aweinstock/recipe-graphviz' into 'master'
Add graphviz diagram generator for crafting recipes.

See merge request veloren/veloren!2401
2021-06-09 09:14:13 +00:00
juliancoffee
44e4fd874f add asset_tweaks to unittests on CI 2021-06-08 23:00:59 +03:00
Avi Weinstock
b5ae6227c0 Run clippy for graphviz target in CI and add instructions on how to consume the output. 2021-06-08 15:08:14 -04:00
juliancoffee
8f86f474e8 place asset_tweak behind a feature 2021-06-08 13:34:41 +03:00
Marcel Märtens
846df3a18a --all-targets does not run targets that needs some features which are not provided. --all-features is NOT possible as we have some features which are conflicting.
The only possibility is to manually add the features we need to check in CI to the clippy query
2021-06-07 12:29:08 +02:00
Imbris
aa127a9df6 Make docker-nightly job depend on the nightly air-linux job 2021-06-04 03:24:57 -04:00
Imbris
61cec869c1 Merge branch 'imbris/nightly-ci-improvement' into 'master'
Avoid extra jobs on nightly builds

See merge request veloren/veloren!2367
2021-06-03 20:54:16 +00:00
Imbris
e7a766b310 Merge branch 'imbris/wgpu-master-rebased' into 'master'
wgpu

See merge request veloren/veloren!1947
2021-06-03 19:58:48 +00:00
Imbris
f3cb08170c Unhack the wgpu branch CI 2021-06-03 14:24:31 -04:00
Marcel Märtens
44d04aa074 change cidb settings 2021-06-03 17:26:09 +02:00
Imbris
2154893501 Avoid extra jobs on nightly builds 2021-06-03 04:10:22 -04:00
Imbris
7f8877988d CI tweaks, make windows build use posix mingw and copy necessary DLL files 2021-06-02 23:59:50 -04:00
Imbris
e97d57b119 Disable CI that does not need to run for builds 2021-06-02 23:59:50 -04:00
Imbris
f07c2e8dab Add missing userdata strategy env var to macos builds 2021-06-02 16:50:42 -04:00
Imbris
a8ced7b959 Fix benchmarks by removing the rest of the incremental folder 2021-06-01 17:32:31 -04:00
Imbris
d256dae29e Merge branch 'imbris/fix-pages' into 'master'
Fix pages by specifying a docker image

See merge request veloren/veloren!2363
2021-06-01 21:07:57 +00:00
Imbris
659541d463 Fix pages by specifying a docker image 2021-06-01 16:26:41 -04:00
Imbris
351327c3d0 Use native macos runner for builds 2021-06-01 16:08:47 -04:00
Imbris
32ab0860ca delete all incremental things for clippy CI 2021-06-01 14:15:01 -04:00
Imbris
1db0e2a15c Use new multi image cache scheme in the CI and consolidate runner tag specification so that it is easier to modify 2021-06-01 13:19:12 -04:00
juliancoffee
5573fc33b9 Extract voxygen/src/i18n.rs into own crate
- New crate (i18n), currently under voxygen directory
- Updated CI to run localization test from i18n, not from voxygen
2021-05-09 13:12:26 +03:00
Marcel Märtens
a610db5cfc have a seperate stage for scheduled builds 2021-04-23 17:48:02 +02:00
Marcel
ea16fa10ab use different docker tags for master and nightly runs,
This allow us to decouple our test-ci from the release-ci and is necessary for multiple release channels in the future.
E.g. we can run a master build without it directly beeing pushed to watchtower and airshipper (config setting requiered on airshipper)
Adjust Tags for server-cli
2021-04-22 21:38:29 +02:00
Marcel
fab9d1c899 Merge branch 'xMAC94x/fix_benchmarks' into 'master'
fix upload of benchmarks

See merge request veloren/veloren!2149
2021-04-18 20:55:05 +00:00
Marcel Märtens
6f46d20aee fix upload of benchmarks 2021-04-18 20:01:26 +02:00
Sam
48158a98c5 Moved coverage and benchmarks to only run post-merge. 2021-04-17 18:50:31 -04:00
Songtronix
6c8c649d3d
change(ci): only create artifacts triggered by schedule 2021-03-31 17:02:47 +02:00
Marcel Märtens
63dc2ea551 unittest fix 2021-03-23 11:51:00 +01:00
Marcel Märtens
c58eb1cf50 ci fails sporadically, remove file so it doesnt fail that often till we have a bettter toolchain 2021-03-23 10:30:29 +01:00
Marcel Märtens
3d195348d2 fix ci, which was broken by merging unittests and check 2021-01-23 23:05:24 +01:00
Imbris
adaea096d2 Update winit and iced 2021-01-23 01:09:33 -05:00
Ben Wallis
a590595149
Merged check and unit tests into single step
Reordered commands to run quickest first in order to tie up least CI resource
Fixed some clippy errors in examples
2021-01-19 19:58:51 +01:00
Marcel
0826707b0d use --all-targets which is the same as before AND --lib.
Just to be future proof, lib should not matter ATM, but might in the future when we produce libs that are not used in any binary target
2021-01-14 08:16:25 +00:00
Marcel Märtens
68be467138 After some discussion with XVar, Song and Yakei we found out that cargo clippy is a superset of cargo check.
There are multiple hints:
 - one guy in discord  https://discord.gg/nWGhnbRb  https://discord.com/channels/273534239310479360/335502067432947748/798886188923617290
 - a old stackoverflow https://stackoverflow.com/questions/57449356/is-cargo-clippy-a-superset-of-cargo-check which lead us to the source code:
   7fa1d78c89/src/main.rs (L73)
   which either uses `check` or `fix`.
   cargo fix is documented in the docs with (https://doc.rust-lang.org/cargo/commands/cargo-fix.html)
   "executing cargo fix will under the hood execute cargo-check(1)."
 - `cargo clippy` fails after running `cargo check` prob as there is nothing to do.
 - `cargo clippy --help` points us to `cargo check --help`
Thus we are removing `cargo check` from the CI as a seperate check.

However `cargo check --examples` did check the examples.
In order to have them covered we are also running clippy now for examples, benches and all bins.
Also we moved `--locked` from cargo check to clippy.
2021-01-13 14:22:54 +01:00
Marcel Märtens
a3351be221 running cargo check with -D warnings seems to trigger a complete cache invalidation.
AND cargo check was implicitly run in clippy. In order to be future save we now ALWAYS run all CI with -D warnings.
(i verified that this works in a test pipeline)
2021-01-12 01:15:13 +01:00
Marcel Märtens
58bda48bf0 it seems like that the TAGUUID must start with a Alphabetic char 2020-12-12 00:20:57 +01:00
Marcel Märtens
9dae7f1cf6 fix sql injection 2020-12-11 19:09:11 +01:00
Marcel Märtens
d46271f052 switch host to mac94.de, because song is affraid of sql injection into a public db which doesn't cause any harm 2020-12-11 15:58:41 +01:00
Marcel Märtens
9ec2a602e6 escape ENV variables with a randomly generated 16 char tag. remove installation of postgres client and move it to docker container 2020-12-11 13:26:04 +01:00
Marcel Märtens
dad5bf3aff upload benchmark to central ci db
```sql
CREATE TABLE benchmarks(
    "timestamp" timestamptz NOT NULL DEFAULT (current_setting('veloren.timestamp')::timestamptz),
    branch text NOT NULL DEFAULT current_setting('veloren.branch'),
    sha text NOT NULL DEFAULT current_setting('veloren.sha'),
    "group" text NULL,
    "function" text NULL,
    "value" text NULL,
    throughput_num numeric NULL,
    throughput_type text NULL,
    sample_measured_value numeric NOT NULL,
    unit text NULL,
    iteration_count numeric NULL
);
```
2020-12-10 16:19:41 +01:00
Imbris
d7f506cf71 Don't drop wayland clipboard 2020-12-01 19:35:32 -05:00