mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
898b5c6593
This was necessary because Cargo recently deprecated the "overrides" keyword in favor of "package", and Criterion changed its interface. This commit also now lists more configurable keys, so if they aren't set to their defaults the user will be able to find them. This includes the roll key, which wasn't listed earlier and is different on Windows and Mac. It does *not* include the respawn key because that key is already shown when you die.
172 lines
4.1 KiB
YAML
172 lines
4.1 KiB
YAML
image: registry.gitlab.com/veloren/veloren-docker-ci:latest
|
|
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
GIT_DEPTH: 3
|
|
GIT_CLEAN_FLAGS: -f
|
|
|
|
stages:
|
|
- optional-builds
|
|
- check-compile
|
|
- post
|
|
|
|
before_script:
|
|
- source $HOME/.cargo/env
|
|
- df -h /
|
|
- free -h
|
|
- cargo --version
|
|
- export DISABLE_GIT_LFS_CHECK=true
|
|
- rm -r target || echo "target doesnt exist, which is fine"
|
|
- ln -s /dockercache/veloren/target target
|
|
|
|
# -- optional build
|
|
|
|
.optional-release: &optional-release
|
|
stage: optional-builds
|
|
tags:
|
|
- veloren-docker
|
|
except:
|
|
- schedules
|
|
when: manual
|
|
|
|
optional-release:linux:
|
|
<<: *optional-release
|
|
script:
|
|
- VELOREN_ASSETS=assets cargo build --verbose --release
|
|
- cp target/release/veloren-server-cli $CI_PROJECT_DIR
|
|
- cp target/release/veloren-voxygen $CI_PROJECT_DIR
|
|
- strip --strip-all veloren-server-cli
|
|
- strip --strip-all veloren-voxygen
|
|
artifacts:
|
|
paths:
|
|
- veloren-server-cli
|
|
- veloren-voxygen
|
|
- assets/
|
|
- LICENSE
|
|
expire_in: 1 week
|
|
|
|
optional-release:windows:
|
|
<<: *optional-release
|
|
script:
|
|
- VELOREN_ASSETS=assets cargo build --verbose --target=x86_64-pc-windows-gnu --release
|
|
- cp target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe $CI_PROJECT_DIR
|
|
- cp target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe $CI_PROJECT_DIR
|
|
artifacts:
|
|
paths:
|
|
- veloren-server-cli.exe
|
|
- veloren-voxygen.exe
|
|
- assets/
|
|
- LICENSE
|
|
expire_in: 1 week
|
|
|
|
# --
|
|
|
|
# -- check
|
|
|
|
check:
|
|
stage: check-compile
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- RUSTFLAGS="-D warnings" cargo check
|
|
|
|
code-quality:
|
|
stage: check-compile
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- cargo clippy -- --warn clippy::all
|
|
- cargo fmt --all -- --check
|
|
|
|
security:
|
|
stage: check-compile
|
|
allow_failure: true
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- cargo audit
|
|
|
|
# --
|
|
|
|
# -- post build
|
|
|
|
unittests:
|
|
stage: post
|
|
when: delayed
|
|
start_in: 5 seconds
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- echo "Workaround, cargo tests fails due some rust files are already deleted, so we just stack cargo test. if its the os error, it wont appear on them all, if its a real error, it will retry and then fail"
|
|
- cargo test || cargo test || cargo test || cargo test
|
|
|
|
coverage:
|
|
stage: post
|
|
when: delayed
|
|
start_in: 5 seconds
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- cargo tarpaulin -v
|
|
allow_failure: true
|
|
|
|
benchmarks:
|
|
stage: post
|
|
when: delayed
|
|
start_in: 5 seconds
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- cargo bench
|
|
allow_failure: true
|
|
|
|
linux:
|
|
stage: post
|
|
when: delayed
|
|
start_in: 5 seconds
|
|
only:
|
|
refs:
|
|
- /^r[0-9]+\.[0-9]+\.[0-9]+/
|
|
- /^v[0-9]+\.[0-9]+\.[0-9]+/
|
|
- /^master$/
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- VELOREN_ASSETS=assets cargo build --release
|
|
- cp -r target/release/veloren-server-cli $CI_PROJECT_DIR
|
|
- cp -r target/release/veloren-voxygen $CI_PROJECT_DIR
|
|
- strip --strip-all veloren-server-cli
|
|
- strip --strip-all veloren-voxygen
|
|
artifacts:
|
|
paths:
|
|
- veloren-server-cli
|
|
- veloren-voxygen
|
|
- assets/
|
|
- LICENSE
|
|
expire_in: 1 week
|
|
|
|
windows:
|
|
stage: post
|
|
when: delayed
|
|
start_in: 5 seconds
|
|
only:
|
|
refs:
|
|
- /^r[0-9]+\.[0-9]+\.[0-9]+/
|
|
- /^v[0-9]+\.[0-9]+\.[0-9]+/
|
|
- /^master$/
|
|
tags:
|
|
- veloren-docker
|
|
script:
|
|
- VELOREN_ASSETS=assets cargo build --target=x86_64-pc-windows-gnu --release
|
|
- cp -r target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe $CI_PROJECT_DIR
|
|
- cp -r target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe $CI_PROJECT_DIR
|
|
artifacts:
|
|
paths:
|
|
- veloren-server-cli.exe
|
|
- veloren-voxygen.exe
|
|
- assets/
|
|
- LICENSE
|
|
expire_in: 1 week
|
|
|
|
# --
|