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

.gitlab-ci.yml 5.05 KB
Newer Older
qinsoon's avatar
qinsoon committed
1
2
3
stages:
  - build
  - test
Zixian Cai's avatar
Zixian Cai committed
4
  - mubench
qinsoon's avatar
qinsoon committed
5
6
7
8
9
10
11
  - rustfmt

before_script:
  - export MU_ZEBU=$CI_PROJECT_DIR
  - export ZEBU_BUILD=release
  - export CARGO_HOME=.cargo
  - export CC=clang
John Zhang's avatar
John Zhang committed
12
13
  - source /home/gitlab-runner/ci/bin/activate

14
build:
qinsoon's avatar
qinsoon committed
15
16
17
  stage: build
  script:
    - rustc --version
Zixian Cai's avatar
Zixian Cai committed
18
    - time CARGO_HOME=.cargo RUST_BACKTRACE=1 CC=clang cargo test -j6 --release --no-run --color=always
qinsoon's avatar
typo    
qinsoon committed
19
  artifacts:
qinsoon's avatar
qinsoon committed
20
    paths:
Yi Lin's avatar
Yi Lin committed
21
      - target/release/libmu.so
Yi Lin's avatar
Yi Lin committed
22
      - target/release/libmu.a
23
      - target/release/lib-*
qinsoon's avatar
qinsoon committed
24

25
test:cargo:api:
26
27
  stage: test
  script:
28
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 ./test-release --color=always test_api 2> /dev/null
29
30

test:cargo:ir:
31
32
  stage: test
  script:
33
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 ./test-release --color=always test_ir 2> /dev/null
34
35

test:cargo:compiler:
36
37
  stage: test
  script:
38
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 ./test-release --color=always test_compiler 2> /dev/null
39
40

test:cargo:runtime:
41
42
  stage: test
  script:
43
    - RUST_BACKTRACE=1 RUST_TEST_THREADS=1 ./test-release --color=always test_runtime 2> /dev/null
John Zhang's avatar
John Zhang committed
44

qinsoon's avatar
qinsoon committed
45
46
47
48
49
50
51
52
53
.build_muc: &build_muc |
  if [ -d "tests/test_muc/mu-tool-compiler" ]; then rm -Rf tests/test_muc/mu-tool-compiler; fi
  cd tests/test_muc
  git clone https://gitlab.anu.edu.au/mu/mu-tool-compiler
  cd mu-tool-compiler
  mkdir lib
  ln -s $MU_ZEBU/target/release/libmu.so lib/
  make
  cd ..
qinsoon's avatar
qinsoon committed
54
55
56
57

testmuc:test_simple:
  stage: test
  script:
qinsoon's avatar
qinsoon committed
58
    - *build_muc
qinsoon's avatar
qinsoon committed
59
60
61
62
63
    - LD_LIBRARY_PATH=mu-tool-compiler/lib/ MUC=mu-tool-compiler/muc python2 -m pytest test_simple.py -v

testmuc:test_swapstack:
  stage: test
  script:
qinsoon's avatar
qinsoon committed
64
    - *build_muc
qinsoon's avatar
qinsoon committed
65
66
    - LD_LIBRARY_PATH=mu-tool-compiler/lib/ MUC=mu-tool-compiler/muc python2 -m pytest test_thread_and_stack.py -v

John Zhang's avatar
John Zhang committed
67
testjit:milestones:
68
69
  stage: test
  script:
70
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_milestones.py -v --color=yes
John Zhang's avatar
John Zhang committed
71
72

testjit:binops:
73
74
  stage: test
  script:
75
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_binops.py -v --color=yes
John Zhang's avatar
John Zhang committed
76
77

testjit:cmpops:
78
79
  stage: test
  script:
80
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_cmpops.py -v --color=yes
John Zhang's avatar
John Zhang committed
81

John Zhang's avatar
John Zhang committed
82
83
84
testjit:controlflow:
  stage: test
  script:
85
86
87
    # run this test under test_jit directory
    # as a C source file is expected in a relative path to current working directory
    - cd tests/test_jit
qinsoon's avatar
fix CI    
qinsoon committed
88
    - RUST_BACKTRACE=1 pytest test_controlflow.py -v --color=yes
John Zhang's avatar
John Zhang committed
89

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

John Zhang's avatar
John Zhang committed
95
96
97
testjit:double:
  stage: test
  script:
98
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_double.py -v --color=yes
John Zhang's avatar
John Zhang committed
99
100
101
102

testjit:memops:
  stage: test
  script:
103
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_memops.py -v --color=yes
John Zhang's avatar
John Zhang committed
104
105
106
107

testjit:milestones:
  stage: test
  script:
108
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_milestones.py -v --color=yes
John Zhang's avatar
John Zhang committed
109
110
111
112

testjit:otherops:
  stage: test
  script:
113
    - RUST_BACKTRACE=1 pytest tests/test_jit/test_otherops.py -v --color=yes
John Zhang's avatar
John Zhang committed
114

John Zhang's avatar
John Zhang committed
115
testjit:rpython:
qinsoon's avatar
qinsoon committed
116
117
118
119
120
121
122
123
  stage: test
  script:
    - if [ -d "tests/test_jit/mu-client-pypy" ]; then rm -Rf tests/test_jit/mu-client-pypy; fi
    - git clone https://gitlab.anu.edu.au/mu/mu-client-pypy.git tests/test_jit/mu-client-pypy
    - cd tests/test_jit/mu-client-pypy
    - git checkout mu-rewrite
    - git apply pypy.patch
    - cd $CI_PROJECT_DIR/tests/test_jit
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
124
    - MU_LOG_LEVEL=info LD_LIBRARY_PATH=./emit RUST_BACKTRACE=1 PYTHONPATH=mu-client-pypy pytest test_rpython*.py -v --color=yes
qinsoon's avatar
qinsoon committed
125
126

testjit:som:
John Zhang's avatar
John Zhang committed
127
128
  stage: test
  script:
129
    - if [ -d "tests/test_jit/RPySOM" ]; then rm -Rf tests/test_jit/RPySOM; fi
John Zhang's avatar
John Zhang committed
130
    - git clone https://github.com/microvm/RPySOM.git tests/test_jit/RPySOM
131
    - cd tests/test_jit/RPySOM; git submodule init; git submodule update; cd $CI_PROJECT_DIR
132
133
134
135
136
    - if [ -d "tests/test_jit/mu-client-pypy" ]; then rm -Rf tests/test_jit/mu-client-pypy; fi
    - git clone https://gitlab.anu.edu.au/mu/mu-client-pypy.git tests/test_jit/mu-client-pypy
    - cd tests/test_jit/mu-client-pypy
    - git checkout mu-rewrite
    - git apply pypy.patch
137
    - cd $CI_PROJECT_DIR/tests/test_jit
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
138
    - MU_LOG_LEVEL=info LD_LIBRARY_PATH=./emit RUST_BACKTRACE=1 PYTHONPATH=mu-client-pypy:RPySOM/src RPYSOM=RPySOM pytest test_som.py -v --color=yes
qinsoon's avatar
qinsoon committed
139

140
141
142
143
144
145
mubench:
  stage: mubench
  script:
    - deactivate
    - git clone https://gitlab.anu.edu.au/mu/mu-perf-benchmarks.git
    - git clone https://gitlab.anu.edu.au/mu/mu-client-pypy.git
Zixian Cai's avatar
Zixian Cai committed
146
    - cd mu-client-pypy; git apply pypy.patch; git apply clang_opt_flag.patch; cd $CI_PROJECT_DIR
147
    - git clone https://github.com/microvm/RPySOM.git
Zixian Cai's avatar
Zixian Cai committed
148
    - cd RPySOM; git submodule init; git submodule update; cd $CI_PROJECT_DIR
149
150
151
152
    - export RPYSOM=RPySOM
    - export PYPY=mu-client-pypy
    - virtualenv -p python3 mubench_venv
    - source mubench_venv/bin/activate
Zixian Cai's avatar
Zixian Cai committed
153
    - pip install -Ue ./mu-perf-benchmarks
Zixian Cai's avatar
Zixian Cai committed
154
    - mkdir example
Zixian Cai's avatar
Zixian Cai committed
155
    - mubench local ./mu-perf-benchmarks/example/mu-impl-fast.yml --dump /home/gitlab-runner/results/$(git log -1 --pretty="%h_%at") --pipeline ""
Zixian Cai's avatar
Zixian Cai committed
156
157
    - rsync -a /home/gitlab-runner/results/* squirrel:~/mu-impl-fast/angus
    
qinsoon's avatar
qinsoon committed
158
159
160
rustfmt:
  stage: rustfmt
  script:
Isaac Oscar Gariano's avatar
Isaac Oscar Gariano committed
161
162
    - cargo-fmt -- --write-mode=diff --verbose -- src/ast/src/lib.rs src/gc/src/lib.rs src/utils/src/lib.rs