veloren/.gitlab-ci.yml

271 lines
6.8 KiB
YAML
Raw Normal View History

2019-10-08 09:14:46 +00:00
image: registry.gitlab.com/veloren/veloren-docker-ci:latest
variables:
2019-10-09 22:42:39 +00:00
GIT_STRATEGY: fetch
GIT_DEPTH: 3
GIT_CLEAN_FLAGS: -f
2019-10-08 08:13:40 +00:00
stages:
- optional-builds
- check-compile
- post
before_script:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- source $HOME/.cargo/env
- df -h
- free -h
- gcc -v
- cargo --version
2019-10-08 17:03:00 +00:00
- export DISABLE_GIT_LFS_CHECK=true
2019-10-10 20:47:40 +00:00
- find assets | md5sum
- ls -la target/debug || echo "upsi"
- ls -la target/release || echo "upsi"
- ls -la target || echo "upsi"
- find target/debug/deps -type f | wc -l || echo "upsi"
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
# -- optional build
.optional-debug: &optional-debug
stage: optional-builds
tags:
- veloren-docker
except:
- schedules
when: manual
optional-debug:linux:
<<: *optional-debug
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-debug-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
script:
- cd voxygen && VELOREN_ASSETS=assets cargo build --verbose && cd ..
- cd server-cli && VELOREN_ASSETS=assets cargo build --verbose && cd ..
2019-10-08 17:03:00 +00:00
- cp target/debug/veloren-server-cli $CI_PROJECT_DIR
- cp target/debug/veloren-voxygen $CI_PROJECT_DIR
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-server-cli
- strip --strip-all veloren-voxygen
2019-10-08 17:03:00 +00:00
artifacts:
paths:
- veloren-server-cli
- veloren-voxygen
- assets/
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-10-08 08:13:40 +00:00
optional-debug:windows:
<<: *optional-debug
cache:
2019-10-10 20:53:26 +00:00
key: "cache-windows-debug-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
script:
- cd voxygen && VELOREN_ASSETS=assets cargo build --verbose --target=x86_64-pc-windows-gnu && cd ..
- cd server-cli && VELOREN_ASSETS=assets cargo build --verbose --target=x86_64-pc-windows-gnu && cd ..
2019-10-08 17:03:00 +00:00
- cp target/x86_64-pc-windows-gnu/debug/veloren-server-cli.exe $CI_PROJECT_DIR
- cp target/x86_64-pc-windows-gnu/debug/veloren-voxygen.exe $CI_PROJECT_DIR
artifacts:
paths:
- veloren-server-cli.exe
- veloren-voxygen.exe
- assets/
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-09-07 16:35:10 +00:00
.optional-release: &optional-release
2019-10-08 08:13:40 +00:00
stage: optional-builds
tags:
- veloren-docker
except:
- schedules
when: manual
optional-release:linux:
<<: *optional-release
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-release-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
script:
- cd voxygen && VELOREN_ASSETS=assets cargo build --verbose --release && cd ..
- cd server-cli && VELOREN_ASSETS=assets cargo build --verbose --release && cd ..
2019-10-08 17:03:00 +00:00
- cp target/release/veloren-server-cli $CI_PROJECT_DIR
- cp target/release/veloren-voxygen $CI_PROJECT_DIR
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-server-cli
- strip --strip-all veloren-voxygen
2019-10-08 17:03:00 +00:00
artifacts:
paths:
- veloren-server-cli
- veloren-voxygen
- assets/
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-10-08 08:13:40 +00:00
optional-release:windows:
<<: *optional-release
cache:
2019-10-10 20:53:26 +00:00
key: "cache-windows-release-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
script:
- cd voxygen && VELOREN_ASSETS=assets cargo build --verbose --target=x86_64-pc-windows-gnu --release && cd ..
- cd server-cli && VELOREN_ASSETS=assets cargo build --verbose --target=x86_64-pc-windows-gnu --release && cd ..
2019-10-08 17:03:00 +00:00
- 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
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-10-08 08:13:40 +00:00
# --
# -- check
check:
stage: check-compile
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-debug-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
tags:
- veloren-docker
script:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- RUSTFLAGS="-D warnings" cargo check --verbose
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
code-quality:
stage: check-compile
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-debug-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
tags:
- veloren-docker
script:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cargo clippy -- --warn clippy::all
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cargo fmt --all -- --check
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
security:
stage: check-compile
2019-10-28 18:23:27 +00:00
allow_failure: true
tags:
- veloren-docker
script:
2019-11-14 00:24:08 +00:00
- date
2019-10-28 18:23:27 +00:00
- cargo install cargo-audit
2019-11-14 00:24:08 +00:00
- date
2019-10-28 18:23:27 +00:00
- cargo audit
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
# --
# -- post build
unittests:
2019-10-08 08:13:40 +00:00
stage: post
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-debug-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
when: delayed
start_in: 5 seconds
tags:
- veloren-docker
script:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cargo test
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
benchmarks:
stage: post
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-release-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
when: delayed
start_in: 5 seconds
tags:
- veloren-docker
script:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cargo bench
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
allow_failure: true
linux:
stage: post
cache:
2019-10-10 20:53:26 +00:00
key: "cache-linux-release-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
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:
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cd voxygen && VELOREN_ASSETS=assets cargo build --release && cd ..
2019-11-14 00:24:08 +00:00
- date
2019-10-08 08:13:40 +00:00
- cd server-cli && VELOREN_ASSETS=assets cargo build --release && cd ..
2019-11-14 00:24:08 +00:00
- date
2019-10-08 17:03:00 +00:00
- cp -r target/release/veloren-server-cli $CI_PROJECT_DIR
2019-11-14 00:24:08 +00:00
- date
2019-10-08 17:03:00 +00:00
- cp -r target/release/veloren-voxygen $CI_PROJECT_DIR
2019-11-14 00:24:08 +00:00
- date
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-server-cli
2019-11-14 00:24:08 +00:00
- date
2019-11-03 22:27:37 +00:00
- strip --strip-all veloren-voxygen
2019-11-14 00:24:08 +00:00
- date
2019-10-08 17:03:00 +00:00
artifacts:
paths:
- veloren-server-cli
- veloren-voxygen
- assets/
2019-10-29 22:48:15 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-10-08 08:13:40 +00:00
windows:
stage: post
cache:
2019-10-10 20:53:26 +00:00
key: "cache-windows-release-v2"
2019-10-08 08:13:40 +00:00
paths:
2019-10-10 20:47:40 +00:00
- ./target
2019-10-08 08:13:40 +00:00
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:
- cd voxygen && VELOREN_ASSETS=assets cargo build --target=x86_64-pc-windows-gnu --release && cd ..
- cd server-cli && VELOREN_ASSETS=assets cargo build --target=x86_64-pc-windows-gnu --release && cd ..
2019-10-08 17:03:00 +00:00
- 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/
2019-10-29 22:48:15 +00:00
- LICENSE
2019-10-08 17:03:00 +00:00
expire_in: 1 week
2019-10-08 08:13:40 +00:00
# --