To protect your data, the CISO officer has suggested users to enable GitLab 2FA as soon as possible.

.gitlab-ci.yml 4.02 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/
qinsoon's avatar
qinsoon committed
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

qinsoon's avatar
qinsoon committed
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
qinsoon's avatar
qinsoon committed
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
qinsoon's avatar
qinsoon committed
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
John Zhang's avatar
John Zhang committed
52

53
test:cargo:api:
54
55
  stage: test
  script:
56
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test --release test_api 2> /dev/null
57
58

test:cargo:ir:
59
60
  stage: test
  script:
61
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test --release test_ir 2> /dev/null
62
63

test:cargo:compiler:
64
65
  stage: test
  script:
66
    - CARGO_HOME=.cargo RUST_BACKTRACE=1 RUST_TEST_THREADS=1 CC=clang cargo test --release test_compiler 2> /dev/null
67
68

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

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

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

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

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

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

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