65 lines
1.4 KiB
YAML
65 lines
1.4 KiB
YAML
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 |