generate syscalls.json
[openpower-isa.git] / .gitlab-ci.yml
1 image: debian:10
2
3 cache:
4 when: always
5 paths:
6 - ccache
7 - linux.bundle
8
9 build:
10 stage: build
11 before_script:
12 - apt-get update
13 # one package per line to simplify sorting, git diff, etc.
14 - >-
15 apt-get -y install --no-install-recommends
16 aria2
17 autoconf
18 binutils-powerpc64-linux-gnu
19 binutils-powerpc64le-linux-gnu
20 bison
21 build-essential
22 ccache
23 clang
24 cmake
25 curl
26 flex
27 gawk
28 git
29 gperf
30 libboost-program-options-dev
31 libffi-dev
32 libftdi-dev
33 libgmp-dev
34 libreadline-dev
35 mercurial
36 pkg-config
37 python
38 python3
39 python3-dev
40 python3-pip
41 python3-setuptools
42 python3-setuptools-scm
43 python3-wheel
44 qemu-system-ppc
45 tcl-dev
46 - export PATH="$HOME/.local/bin:/usr/lib/ccache:$PATH"
47 - export CCACHE_BASEDIR="$PWD"
48 - export CCACHE_DIR="$PWD/ccache"
49 - export CCACHE_COMPILERCHECK=content
50 - ccache --zero-stats || true
51 - ccache --show-stats || true
52 - python3 -m pip install --user pytest-xdist==3.3.1 pytest==7.3.1
53 script:
54 - git clone --depth 1 -b yosys-0.17 https://github.com/YosysHQ/yosys.git yosys
55 - pushd yosys
56 - make config-gcc
57 - make -j$(nproc)
58 - make install
59 - popd
60 - yosys -V
61
62 - git clone https://github.com/YosysHQ/SymbiYosys.git SymbiYosys
63 - pushd SymbiYosys
64 - git checkout d10e472edf4ea9be3aa6347b264ba575fbea933a
65 - make install
66 - popd
67
68 - git clone --depth 1 -b Yices-2.6.4 https://github.com/SRI-CSL/yices2.git yices2
69 - pushd yices2
70 - autoconf
71 - ./configure
72 - make -j$(nproc)
73 - make install
74 - popd
75
76 - git clone --depth 1 -b z3-4.8.17 https://github.com/Z3Prover/z3.git z3
77 - pushd z3
78 - python scripts/mk_make.py
79 - cd build
80 - make -j$(nproc)
81 - make install
82 - popd
83
84 - git clone --depth 1 https://gitlab.com/nmigen/nmigen.git nmigen
85 - pushd nmigen
86 - git rev-parse HEAD
87 - python3 setup.py develop
88 - popd
89
90 - git clone --depth 1 https://git.libre-soc.org/git/mdis.git mdis
91 - pushd mdis
92 - git rev-parse HEAD
93 - python3 setup.py develop
94 - popd
95
96 - git clone --depth 1 https://git.libre-soc.org/git/nmutil.git nmutil
97 - pushd nmutil
98 - git rev-parse HEAD
99 - python3 setup.py develop
100 - popd
101
102 - git clone --depth 1 https://git.libre-soc.org/git/pytest-output-to-files.git pytest-output-to-files
103 - pushd pytest-output-to-files
104 - git rev-parse HEAD
105 - python3 setup.py develop
106 - popd
107
108 # kernel.org recommends cloning from a bundle in CI since that uses a CDN
109 - if [[ ! -f linux.bundle ]]; then aria2c -x 16 -s 16 -o linux.bundle https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/clone.bundle || { rm -f linux.bundle; exit 1; }; fi
110 - git clone linux.bundle
111 - pushd linux
112 - git remote set-url origin https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
113 - git remote update origin
114 - git checkout v6.5.8
115 - popd
116
117 - python3 setup.py develop
118
119 - make generate &> generate.log || { cat generate.log; false; }
120
121 - python3 -m openpower.syscalls json linux > src/openpower/syscalls/syscalls.json
122
123 - SILENCELOG='!*,default' pytest -v --maxfail=10