.gitlab-ci.yml 3.96 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
21 22 23 24 25 26 27
# cache:
#   key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME"
#   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
qinsoon's avatar
typo  
qinsoon committed
44
  artifacts:
qinsoon's avatar
qinsoon committed
45
    paths:
Yi Lin's avatar
Yi Lin committed
46
      - target/release/libmu.so
47

John Zhang's avatar
John Zhang committed
48
before_script:
qinsoon's avatar
fix  
qinsoon committed
49
  - export PATH=$PATH:/root/.cargo/bin
qinsoon's avatar
qinsoon committed
50
  - export MU_ZEBU=$CI_PROJECT_DIR
qinsoon's avatar
qinsoon committed
51
  - export ZEBU_BUILD=release
Yi Lin's avatar
Yi Lin committed
52 53
  - export CARGO_HOME=.cargo
  - export CC=clang
John Zhang's avatar
John Zhang committed
54

55
test:cargo:api:
56 57
  stage: test
  script:
Yi Lin's avatar
Yi Lin committed
58
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 cargo test --release test_api 2> /dev/null
59 60

test:cargo:ir:
61 62
  stage: test
  script:
Yi Lin's avatar
Yi Lin committed
63
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 cargo test --release test_ir 2> /dev/null
64 65

test:cargo:compiler:
66 67
  stage: test
  script:
Yi Lin's avatar
Yi Lin committed
68
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 cargo test --release test_compiler 2> /dev/null
69 70

test:cargo:runtime:
71 72
  stage: test
  script:
Yi Lin's avatar
Yi Lin committed
73
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 cargo test --release test_runtime 2> /dev/null
John Zhang's avatar
John Zhang committed
74 75

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

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

testjit:cmpops:
86 87
  stage: test
  script:
John Zhang's avatar
John Zhang committed
88
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_cmpops.py -v
John Zhang's avatar
John Zhang committed
89

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

John Zhang's avatar
John Zhang committed
96
testjit:convops:
John Zhang's avatar
John Zhang committed
97 98
  stage: test
  script:
John Zhang's avatar
John Zhang committed
99
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_convops.py -v
John Zhang's avatar
John Zhang committed
100

John Zhang's avatar
John Zhang committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
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
121 122 123
testjit:rpython:
  stage: test
  script:
124
    - time CARGO_HOME=.cargo RUST_BACKTRACE=1 CC=clang cargo build --release
125
    - if [ -d "tests/test_jit/RPySOM" ]; then rm -Rf tests/test_jit/RPySOM; fi
John Zhang's avatar
John Zhang committed
126
    - git clone https://github.com/microvm/RPySOM.git tests/test_jit/RPySOM
127
    - cd tests/test_jit/RPySOM; git submodule init; git submodule update; cd $CI_PROJECT_DIR
128
    - if [ -d "tests/test_jit/mu-client-pypy" ]; then rm -Rf tests/test_jit/mu-client-pypy; fi
John Zhang's avatar
John Zhang committed
129
    - 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
130
    - cd tests/test_jit/mu-client-pypy
131
    - git checkout mu-rewrite
John Zhang's avatar
John Zhang committed
132
    - git apply pypy.patch
133
    - cd $CI_PROJECT_DIR/tests/test_jit
134
    - MU_LOG_LEVEL=info LD_LIBRARY_PATH=. RUST_BACKTRACE=1 PYTHONPATH=mu-client-pypy:RPySOM/src RPYSOM=RPySOM pytest test_rpython*.py -v
135 136 137 138 139 140 141 142
#   cache:
#     key: "$CI_BUILD_STAGE/$CI_BUILD_REF_NAME"
#     paths:
#       - .cargo/registry/cache
#       - .cargo/registry/index
#       - target
#       - Cargo.lock
#       - tests/test_jit/mu-client-pypy
143