image: "rust:latest" # Optional: Install a C compiler, cmake and git into the container. # You will often need this when you (or any of your dependencies) depends on C code. #before_script: #- apt-get update -yqq #- apt-get install -yqq mingw-w64 variables: CARGO_HOME: $CI_PROJECT_DIR/cargo APT_CACHE_DIR: $CI_PROJECT_DIR/apt cache: key: all paths: - apt/ - cargo/ - target/ stages: - test - build test:cargo: stage: test script: - rustc --version && cargo --version # Print version info for debugging - cargo install cargo-junit || true - cargo junit --name output.xml artifacts: reports: junit: output.xml build:linux-glibc: stage: build script: - cargo build --release artifacts: paths: - target/release/per build:windows: stage: build script: - mkdir .cargo && echo -e "[target.x86_64-pc-windows-gnu]\nlinker = \"x86_64-w64-mingw32-gcc\"\nar = \"x86_64-w64-mingw32-gcc-ar\"" > .cargo/config - apt-get update -yqq - apt-get install -yqq mingw-w64 - rustup target add x86_64-pc-windows-gnu - cargo build --release --target=x86_64-pc-windows-gnu artifacts: paths: - target/x86_64-pc-windows-gnu/release/per.exe build:linux-musl: stage: build script: - rustup target add x86_64-unknown-linux-musl - cargo build --release --target x86_64-unknown-linux-musl artifacts: paths: - target/x86_64-unknown-linux-musl/release/per