#cache: # paths: # - target/ stages: - build # - test # - deploy # - post-run rust-nightly: stage: build image: rustlang/rust:nightly script: - cargo build --verbose - cargo test --verbose allow_failure: false # # our own git fetch command like https://gitlab.com/gitlab-org/gitlab-runner/blob/master/shells/abstract.go # # speeds up building because we skip the git clean and dont need any gitlab caches # variables: # GIT_STRATEGY: none # before_script: # - if [ -d .git ]; then # echo "is git dir"; # else # git clone $CI_REPOSITORY_URL . ; # fi; # - rm -f .git/index.lock # - rm -f .git/shallow.lock # - rm -f .git/HEAD.lock # - rm -f .git/hocks/post-checkout # - git remote set-url origin $CI_REPOSITORY_URL # - git fetch origin --prune +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* # - git checkout -f -q $CI_COMMIT_SHA # - if [ ! -z "${SOURCE_PROJECT}" -a "${SOURCE_PROJECT}" != " " ]; then # echo "THIS SEEMS TO BE A MERGE PIPELINE FROM ${SOURCE_PROJECT}/${SOURCE_BRANCH}"; # git pull "https://gitlab.com/${SOURCE_PROJECT}/veloren.git" "${SOURCE_BRANCH}"; # fi; # - git submodule update --init --recursive # - git status # - if [ -d target ]; then # ls -la target; # fi; # # - git submodule update --init --recursive # clean-code: # stage: build # script: # - rustup component add rustfmt-preview # - cargo fmt --all -- --check # allow_failure: true # build-voxygen: # stage: build # script: # - (cd voxygen && cargo build) # build-server-cli: # stage: build # script: # - (cd server-cli && cargo build) # unittests: # stage: test # script: # - cargo test # #benchmarktests: # # stage: test # # script: # # - cargo bench # nightly-linux-debug: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build) # - (cd server-cli && VELOREN_ASSETS=assets cargo build) # - rm -r -f nightly # - mkdir nightly # - cp target/debug/veloren-server-cli nightly # - cp target/debug/veloren-voxygen nightly # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f nightly-linux-debug.tar.bz2 # - tar -cvjSf nightly-linux-debug.tar.bz2 nightly # when: always # artifacts: # paths: # - nightly-linux-debug.tar.bz2 # expire_in: 1 week # only: # refs: # - master # nightly-windows-debug: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build --target=x86_64-pc-windows-gnu) # - (cd server-cli && VELOREN_ASSETS=assets cargo build --target=x86_64-pc-windows-gnu) # - rm -r -f nightly # - mkdir nightly # - cp target/x86_64-pc-windows-gnu/debug/veloren-server-cli.exe nightly # - cp target/x86_64-pc-windows-gnu/debug/veloren-voxygen.exe nightly # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f nightly-windows-debug.zip # - zip -r nightly-windows-debug.zip nightly # artifacts: # paths: # - nightly-windows-debug.zip # expire_in: 1 week # only: # refs: # - master # nightly-linux-optimized: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build --release) # - (cd server-cli && VELOREN_ASSETS=assets cargo build --release) # - rm -r -f nightly # - mkdir nightly # - cp target/release/veloren-server-cli nightly # - cp target/release/veloren-voxygen nightly # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f nightly-linux-optimized.tar.bz2 # - tar -cvjSf nightly-linux-optimized.tar.bz2 nightly # when: manual # artifacts: # paths: # - nightly-linux-optimized.tar.bz2 # expire_in: 2 days # only: # refs: # - master # nightly-windows-optimized: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # - (cd server-cli && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # - rm -r -f nightly # - mkdir nightly # - cp target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe nightly # - cp target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe nightly # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f nightly-windows-optimized.zip # - zip -r nightly-windows-optimized.zip nightly # when: manual # artifacts: # paths: # - nightly-windows-optimized.zip # expire_in: 2 days # only: # refs: # - master # stable-linux-optimized: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build --release) # - (cd server-cli && VELOREN_ASSETS=assets cargo build --release) # - rm -r -f stable # - mkdir stable # - cp target/release/veloren-server-cli stable # - cp target/release/veloren-voxygen stable # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f stable-linux-optimized.tar.bz2 # - tar -cvjSf stable-linux-optimized.tar.bz2 stable # artifacts: # paths: # - stable-linux-optimized.tar.bz2 # expire_in: 30d # only: # refs: # - /^v[0-9]+\.[0-9]+\.[0-9]+/ # stable-windows-optimized: # stage: deploy # script: # - (cd voxygen && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # - (cd server-cli && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # - rm -r -f stable # - mkdir stable # - cp target/x86_64-pc-windows-gnu/release/veloren-server-cli.exe stable # - cp target/x86_64-pc-windows-gnu/release/veloren-voxygen.exe stable # - cp -r assets nightly/ # - cp -r voxygen/shaders nightly/ # - rm -f stable-windows-optimized.zip # - zip -r stable-windows-optimized.zip stable # artifacts: # paths: # - stable-windows-optimized.zip # expire_in: 30d # only: # refs: # - /^v[0-9]+\.[0-9]+\.[0-9]+/ # # nightly-windows-release: # # stage: deploy # # script: # # - (cd voxygen && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # # - (cd server-cli && VELOREN_ASSETS=assets cargo build --release --target=x86_64-pc-windows-gnu) # # - rm -r -f nightly # # - mkdir nightly # # - cp target/x86_64-pc-windows-gnu/debug/veloren-server-cli.exe nightly # # - cp target/x86_64-pc-windows-gnu/debug/veloren-voxygen.exe nightly # # - cp -r assets nightly/ # # - cp -r voxygen/shaders nightly/ # # - cp -r voxygen/fonts nightly/ # # - rm -f nightly-windows-release.zip # # - zip -r nightly-windows-release.zip nightly # # artifacts: # # paths: # # - nightly-windows-release.zip # # expire_in: 1 week # # only: # # refs: # # - master # coverage: # stage: post-run # script: # - if cargo install --list | grep -i "cargo-tarpaulin"; then # echo "tarpaulin already installed"; # else # RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin; # fi # - cargo tarpaulin --skip-clean --all || echo "There is a problem in tarpaulin which sometimes fails" # clippy: # stage: post-run # script: # - rustup component add clippy-preview --toolchain=nightly # - cargo clippy --all -- -D clippy || echo "This job is disabled, because we are not activly using it now, so we dont want to see yellow failed partly" # allow_failure: true