.gitlab-ci.yml 3.51 KB
Newer Older
Yi Lin's avatar
Yi Lin committed
1 2 3
# This file is a template, and might need editing before it works on your project.
# Unofficial language image. Look for the different tagged releases at:
# https://hub.docker.com/r/scorpil/rust/tags/
4
image: "qinsoon/ubuntu-zebu-test:latest"
Yi Lin's avatar
Yi Lin committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

# 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: http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#what-is-service
#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

# Use cargo to test the project
John Zhang's avatar
John Zhang committed
21
cache:
22
  key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME"
John Zhang's avatar
John Zhang committed
23 24 25 26 27
  paths:
    - .cargo/registry/cache
    - .cargo/registry/index
    - target
    - Cargo.lock
John Zhang's avatar
John Zhang committed
28

29 30 31 32 33 34 35 36
stages:
  - build
  - test

build_vm:
  stage: build
  script:
    - rustc --version
qinsoon's avatar
qinsoon committed
37
    - time CARGO_HOME=.cargo RUST_BACKTRACE=1 CC=clang cargo build --release
38 39 40 41 42

build_test:
  stage: build
  script:
    - rustc --version
qinsoon's avatar
qinsoon committed
43
    - time CARGO_HOME=.cargo RUST_BACKTRACE=1 CC=clang cargo test --release --no-run
44

John Zhang's avatar
John Zhang committed
45
before_script:
qinsoon's avatar
fix  
qinsoon committed
46
  - export PATH=$PATH:/root/.cargo/bin
qinsoon's avatar
qinsoon committed
47
  - export MU_ZEBU=$CI_PROJECT_DIR
qinsoon's avatar
qinsoon committed
48
  - export ZEBU_BUILD=release
John Zhang's avatar
John Zhang committed
49

50
test:cargo:api:
51 52
  stage: test
  script:
53
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test test_api 2> /dev/null
54 55

test:cargo:ir:
56 57
  stage: test
  script:
58
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test test_ir 2> /dev/null
59 60

test:cargo:compiler:
61 62
  stage: test
  script:
63
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test test_compiler 2> /dev/null
64 65

test:cargo:runtime:
66 67
  stage: test
  script:
68
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test test_runtime 2> /dev/null
John Zhang's avatar
John Zhang committed
69 70

testjit:milestones:
71 72
  stage: test
  script:
John Zhang's avatar
John Zhang committed
73
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_milestones.py -v
John Zhang's avatar
John Zhang committed
74 75

testjit:binops:
76 77
  stage: test
  script:
John Zhang's avatar
John Zhang committed
78
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_binops.py -v
John Zhang's avatar
John Zhang committed
79 80

testjit:cmpops:
81 82
  stage: test
  script:
John Zhang's avatar
John Zhang committed
83
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_cmpops.py -v
John Zhang's avatar
John Zhang committed
84

John Zhang's avatar
John Zhang committed
85 86 87 88 89 90
testjit:controlflow:
  stage: test
  script:
    - cd tests/test_jit
    - RUST_BACKTRACE=1 pytest test_controlflow.py -v

John Zhang's avatar
John Zhang committed
91
testjit:convops:
John Zhang's avatar
John Zhang committed
92 93
  stage: test
  script:
John Zhang's avatar
John Zhang committed
94
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_convops.py -v
John Zhang's avatar
John Zhang committed
95

John Zhang's avatar
John Zhang committed
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
testjit:double:
  stage: test
  script:
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_double.py -v

testjit:memops:
  stage: test
  script:
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_memops.py -v

testjit:milestones:
  stage: test
  script:
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_milestones.py -v

testjit:otherops:
  stage: test
  script:
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_otherops.py -v

John Zhang's avatar
John Zhang committed
116 117 118
testjit:rpython:
  stage: test
  script:
John Zhang's avatar
John Zhang committed
119
    - git clone https://github.com/microvm/RPySOM.git tests/test_jit/RPySOM
John Zhang's avatar
John Zhang committed
120
    - git clone https://gitlab.anu.edu.au/mu/mu-client-pypy.git tests/test_jit/mu-client-pypy
John Zhang's avatar
John Zhang committed
121
    - cd tests/test_jit/mu-client-pypy
122
    - git checkout mu-rewrite
John Zhang's avatar
John Zhang committed
123
    - git apply pypy.patch
124
    - cd $CI_PROJECT_DIR/tests/test_jit
qinsoon's avatar
qinsoon committed
125
    - LD_LIBRARY_PATH=. RUST_BACKTRACE=1 PYTHONPATH=mu-client-pypy:RPySOM/src RPYSOM=RPySOM pytest test_rpython*.py -v
John Zhang's avatar
John Zhang committed
126 127 128 129 130 131 132
  cache:
    key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME"
    paths:
      - .cargo/registry/cache
      - .cargo/registry/index
      - target
      - Cargo.lock