.build_template: stage: build only: - merge_requests - external_pull_requests allow_failure: false variables: ENABLE_CACHE: "1" script: - rustup target add $TARGET - cargo install cargo2junit - cargo build --target=$TARGET - if [[ -z $DISABLE_TESTS ]]; then cargo build --examples --all-features --target=$TARGET; fi - if [[ -z $DISABLE_TESTS ]]; then cargo build --tests --all-features --target=$TARGET; fi - if [[ -z $DISABLE_TESTS ]]; then cargo test --all-features --target=$TARGET -- -Z unstable-options --format json --report-time | tee results.json; cat results.json | cargo2junit > results.xml; fi artifacts: when: always paths: - target reports: junit: - results.xml cache: key: build paths: - target x86_64-unknown-linux-gnu: extends: .build_template only: - merge_requests - external_pull_requests - master # for the coverage report variables: TARGET: "x86_64-unknown-linux-gnu" #DISABLE_TESTS: 1 artifacts: paths: - target - Cargo.lock #.armv7-unknown-linux-gnueabihf: # extends: .build_template # tags: # - armhf # variables: # TARGET: "armv7-unknown-linux-gnueabihf" # DISABLE_TESTS: "1" # #x86_64-pc-windows-gnu: # extends: .build_template # variables: # CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER: "x86_64-w64-mingw32-gcc" # TARGET: "x86_64-pc-windows-gnu" # DISABLE_TESTS: "1" # script: # - rustup target add $TARGET # - cargo build --lib --all-features --target=$TARGET