Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.8 KiB
Newer Older
Udo Eisenbarth's avatar
Udo Eisenbarth committed
default:
  # Official language image. Look for the different tagged releases at:
  # https://hub.docker.com/r/library/rust/tags/
  image: "rust:latest"

# Optional: Pick zero or more services to be used on all builds.
# Only needed when using a docker container to run your tests in.
# Check out: https://docs.gitlab.com/ee/ci/services/index.html
# services:
#   - mysql:latest
#   - redis:latest
#   - postgres: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 --no-install-recommends build-essential
Udo Eisenbarth's avatar
Udo Eisenbarth committed
stages:
  - test
  - build
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  - deploy
Udo Eisenbarth's avatar
Udo Eisenbarth committed

# Build the main application (currently mostly useless)
build-main:
  stage: build
  tags:
    - opossum
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  script:
    - export HTTPS_PROXY=lxproxy01.gsi.de:3128
    - export HTTP_PROXY=lxproxy01.gsi.de:3128
    - export https_proxy=lxproxy01.gsi.de:3128
    - export http_proxy=lxproxy01.gsi.de:3128
    - cargo build
  dependencies:
    - test:cargo
Udo Eisenbarth's avatar
Udo Eisenbarth committed

# Build API documentation
build-doc:
  stage: build
  tags:
    - opossum
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  script:
    - export HTTPS_PROXY=lxproxy01.gsi.de:3128
    - export HTTP_PROXY=lxproxy01.gsi.de:3128
    - export https_proxy=lxproxy01.gsi.de:3128
    - export http_proxy=lxproxy01.gsi.de:3128
    - cargo doc --no-deps
  dependencies:
    - test:cargo
# Use cargo to test the project
test:cargo:
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  stage: test
  tags:
    - opossum
  script:
    - export HTTPS_PROXY=lxproxy01.gsi.de:3128
    - export HTTP_PROXY=lxproxy01.gsi.de:3128
    - export https_proxy=lxproxy01.gsi.de:3128
    - export http_proxy=lxproxy01.gsi.de:3128
Udo Eisenbarth's avatar
Udo Eisenbarth committed
    - rustup default nightly
    - cargo install junitify
Udo Eisenbarth's avatar
Udo Eisenbarth committed
    - rustc --version && cargo --version # Print version info for debugging
    # - cargo test --workspace
    - cargo test -- --format=json -Z unstable-options --report-time | junitify --out $CI_PROJECT_DIR/tests/
  artifacts:
    when: always
    reports:
      junit: $CI_PROJECT_DIR/tests/*.xml

Udo Eisenbarth's avatar
Udo Eisenbarth committed
test:clippy:
  stage: test
  tags:
    - opossum
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  script:
    - export HTTPS_PROXY=lxproxy01.gsi.de:3128
    - export HTTP_PROXY=lxproxy01.gsi.de:3128
    - export https_proxy=lxproxy01.gsi.de:3128
    - export http_proxy=lxproxy01.gsi.de:3128
    - rustup component add clippy
Udo Eisenbarth's avatar
Udo Eisenbarth committed
    - cargo clippy --workspace
Udo Eisenbarth's avatar
Udo Eisenbarth committed
  allow_failure: true
  dependencies:
    - test:cargo
test:clippy_windows:
  stage: test
  tags:
    - windows
  script:
    - $Env:CARGO_HOME="C:\Users\ueisenb\AppData\Local\0_gsi_executables\.cargo"
    - $Env:CARGO_TARGET_DIR="C:\Users\ueisenb\Appdata\Local\0_gsi_executables\gitlab-runner\target"
    - $Env:Path += ";C:\Users\ueisenb\AppData\Local\0_gsi_executables\.cargo\bin"
    - cargo clippy --workspace
#deploy:
#  stage: deploy
#  script: echo "Define your deployment script!"
#  environment: production